ANTICHAT.XYZ    VIDEO.ANTICHAT.XYZ    НОВЫЕ СООБЩЕНИЯ    ФОРУМ  
Баннер 1   Баннер 2
Antichat снова доступен.
Форум Antichat (Античат) возвращается и снова открыт для пользователей. Здесь обсуждаются безопасность, программирование, технологии и многое другое. Сообщество снова собирается вместе.
Новый адрес: forum.antichat.xyz
Вернуться   Форум АНТИЧАТ > Программирование > PHP, PERL, MySQL, JavaScript
   
Ответ
 
Опции темы Поиск в этой теме Опции просмотра

Пролюбил кодировку MySQL
  #1  
Старый 31.01.2010, 00:34
ntldr
Постоянный
Регистрация: 04.12.2007
Сообщений: 424
Провел на форуме:
2364957

Репутация: 479
По умолчанию Пролюбил кодировку MySQL

Дело было так. Когда я взял хост там была latin1, сервер писал в базу с кодировкой цп1251. Потом я "перевел" как мне казалось, в utf8_general_ci. Но в действительности оно только сделала из нормального цп1251, битый цп1251, то есть приписала лишний байт к нему. То есть сейчас символы в базе хранятся так:
1 левый байт - 1 цп1251'шный

В общем как обычно поступают в подобных случаях?
 
Ответить с цитированием

  #2  
Старый 31.01.2010, 00:41
mailbrush
Познавший АНТИЧАТ
Регистрация: 24.06.2008
Сообщений: 1,996
Провел на форуме:
6075534

Репутация: 2731


Отправить сообщение для mailbrush с помощью ICQ
По умолчанию

Восстанавливать БД из дампа, если таковой был.
 
Ответить с цитированием

  #3  
Старый 31.01.2010, 00:57
ntldr
Постоянный
Регистрация: 04.12.2007
Сообщений: 424
Провел на форуме:
2364957

Репутация: 479
По умолчанию

Цитата:
Сообщение от mailbrush  
Восстанавливать БД из дампа, если таковой был.
меня интересуют способы фикса такой ломанной кодировки. Ведь информация то цела, просто немного обфусцирована
 
Ответить с цитированием

  #4  
Старый 31.01.2010, 01:29
Gifts
Reservists Of Antichat - Level 6
Регистрация: 25.04.2008
Сообщений: 827
Провел на форуме:
2769640

Репутация: 1304


По умолчанию

ntldr Вернуть обратно latin1 не пробовали (теми же действиями, которыми превращали в utf8)? Такое кривое преобразование произошло из-за того, что однобайтовая кодировка latin1 соответствует как раз утф в виде "левый байт"+байт latin1. Обратное преобразование должно пройти нормально

Не забудьте сохранить текущий дамп ^^
__________________
Любая действущая программа устарела.
Создайте систему, которой сможет пользоваться даже дурак ,и только дурак захочет ею пользоваться.
Как правильно задавать вопросы: _http://www.yakimchuk.ru/questions.htm

Последний раз редактировалось Gifts; 31.01.2010 в 01:32..
 
Ответить с цитированием

  #5  
Старый 31.01.2010, 05:29
ntldr
Постоянный
Регистрация: 04.12.2007
Сообщений: 424
Провел на форуме:
2364957

Репутация: 479
По умолчанию

Цитата:
Сообщение от Gifts  
ntldr Вернуть обратно latin1 не пробовали (теми же действиями, которыми превращали в utf8)? Такое кривое преобразование произошло из-за того, что однобайтовая кодировка latin1 соответствует как раз утф в виде "левый байт"+байт latin1. Обратное преобразование должно пройти нормально

Не забудьте сохранить текущий дамп ^^
да, в принципе получилось, но только на отдельной таблице. Всю базу не получается перекодировать

Последний раз редактировалось ntldr; 31.01.2010 в 06:08..
 
Ответить с цитированием

  #6  
Старый 02.02.2010, 00:33
imajo.ati
Участник форума
Регистрация: 21.02.2008
Сообщений: 255
Провел на форуме:
975514

Репутация: 177
По умолчанию

Цитата:
Сообщение от ntldr  
да, в принципе получилось, но только на отдельной таблице. Всю базу не получается перекодировать
а возможно ли текстовый дамп бд перекодировать скриптом? к примеру по регулярному выражению найти все места `field`= 'wrong_data' и с wrong_data сделать манипуляцию?
 
Ответить с цитированием

  #7  
Старый 02.02.2010, 14:23
ntldr
Постоянный
Регистрация: 04.12.2007
Сообщений: 424
Провел на форуме:
2364957

Репутация: 479
По умолчанию

Цитата:
Сообщение от imajo.ati  
а возможно ли текстовый дамп бд перекодировать скриптом? к примеру по регулярному выражению найти все места `field`= 'wrong_data' и с wrong_data сделать манипуляцию?
не понял мысли, но зато у меня появилась идея. Написать скрипт который будет делать селект, затем иконв и апдейт в новую базу. Попробую так
 
Ответить с цитированием

  #8  
Старый 02.02.2010, 19:43
ntldr
Постоянный
Регистрация: 04.12.2007
Сообщений: 424
Провел на форуме:
2364957

Репутация: 479
По умолчанию

в общем у меня получилось из mysql выдрать дамп в чистом цп1251 и перевести его в utf-8. проверял браузером)) он все верно отображал в utf-8. Ho при импорте дампа через утилиту mysql - получаются "иероглифы". Втф?
 
Ответить с цитированием

  #9  
Старый 02.02.2010, 19:53
Gifts
Reservists Of Antichat - Level 6
Регистрация: 25.04.2008
Сообщений: 827
Провел на форуме:
2769640

Репутация: 1304


По умолчанию

ntldr При создании таблиц из дампа - указана неправильная кодировка.
Код:
CREATE TABLE `dedyki` (
тратата описание таблицы
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
__________________
Любая действущая программа устарела.
Создайте систему, которой сможет пользоваться даже дурак ,и только дурак захочет ею пользоваться.
Как правильно задавать вопросы: _http://www.yakimchuk.ru/questions.htm
 
Ответить с цитированием

  #10  
Старый 02.02.2010, 20:02
ntldr
Постоянный
Регистрация: 04.12.2007
Сообщений: 424
Провел на форуме:
2364957

Репутация: 479
По умолчанию

Цитата:
Сообщение от Gifts  
ntldr При создании таблиц из дампа - указана неправильная кодировка.
Код:
CREATE TABLE `dedyki` (
тратата описание таблицы
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
дело в том что при создании из дампа у меня уже стоял utf8.
Мб играет роль некое "Сопоставление соединения с MySQL:" которое равно utf8_unicode_ci заместо utf8_general_ci?
 
Ответить с цитированием
Ответ



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
20 хороших советов по MySQL. root_sashok Чужие Статьи 0 01.12.2009 16:37
Защита БД MySQL от SQL инъекций с помощью GreenSQL xcedz Администрирование 5 02.04.2009 21:46
SQL injection в MySql сервере версии 3,x bandera Чужие Статьи 3 04.06.2006 16:17
Общие Рекомендации Защиты (MySQL и SQL Web-интерфейс) k00p3r Чужие Статьи 0 13.06.2005 11:22
Защищаем MySql. Шаг за шагом k00p3r Чужие Статьи 0 13.06.2005 11:18



Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 


Быстрый переход




ANTICHAT.XYZ