Нарушилась кодировка в БД MySQL > регистрозависимость поиска по русским символам

Обсуждение серверного программирования.

Модераторы: Duncon, Yurich

DRUG_ADDICT
Сообщения: 11
Зарегистрирован: 08 апр 2009, 01:55

Duncon писал(а):Хоть гиг мне всёравно, я не могу дистанционно понять где проблема, дальше в приват (с 10 мессаги можно писать будет), заодно сетку укажи может я в ней сижу :) Код трекера тоже в архив.
я с Иркутска :( а вы из Питера, Вас точно тут нет =( я уж кинул пример =(
вот:
1 привет
2 Привет
3 ПРИвет
=) и вот как это выглядит! в бд:

Код: Выделить всё

INSERT INTO `text` (`ID`, `text`) VALUES
(1, 'ПÐ*Ивет'),
(2, 'привет'),
(3, 'Привет');
вот такая вот кодировка =( тут


всё короче я не знаю че делать в инете тоже не че найти не магу =(((((((((( перечитал уже весь Список доступных статей: Базы данных вот это особенно My SQL 4.1 и любые проблемы с русскими буквами
делал как написано:
Тестирование:
Попробуйте в phpMyAdmin-е выполнить запрос вида «SELECT CONVERT(CONVERT(поле USING binary) USING кодировка) FROM таблица», где таблица и поле соответствующая таблица и поле с русским текстом, а кодировка — кодировка из проблемы №1.
Результат тестирования:
Если буквы (но необязательно слова) стали русскими, значит текст в базе лежал не в правильной кодировке и его нужно сконвертировать.
Если буквы стали русскими, а слова нет («бнопня»), значит неверно выбрана одна из русских кодировок – пробуйте другие, пока не получится русских слов.
были русские буквы + символы, но далее написано что нужно ПРАВИЛЬНО сконвертировать, но как =(( вот читал 9.1.12. Column Character Set Conversion не помогло! все команды перепробовал! :(

я конечно извиняюсь, надоел наверно, но если вас ето напрягает можете не отвечать, я привык уже =(
все равно спасибо, хоть что то! вот то что вы мне посоветовали http://sypex.net/encoding/ эт хорошо я щас как рас етот скрипт переделываю так что бы сохранялись русские буквы, т.к. когда я записываю в файл эти данные (смотрим пример данных в бд INSERT INTO ...) в файл записывается нормальный русский текст, теперь всего лиш нужно чтоб этот скрипт так делал, правда пока что безрезультатно =(
Аватара пользователя
Duncon
Сообщения: 2085
Зарегистрирован: 10 окт 2004, 14:11
Откуда: Питер
Контактная информация:

Если удалось экспартнуть в файл нормальный русский текст, то проблема однозначно в кодировке базы на сервере при импорте, если в базе всё хорошо (смотрим через phpmyadmin к примеру), то косячит сам скрипт выведения текста, не знаю что тут ещё сказать, но если на компе всё в нормально то, пол дела сделанно, остатся только серверная часть. И на этом месте стоит обрадоваться раз удалось вытащить...
[syntax=Delphi] [/syntax]
DRUG_ADDICT
Сообщения: 11
Зарегистрирован: 08 апр 2009, 01:55

проблема решена! :)

оказывается по умолчанию кодировка соединения и т.д.и т.п. была:

Код: Выделить всё

 ...
| character_set_client            | latin1
| character_set_connection        | latin1
| character_set_database          | utf8
| character_set_filesystem        | binary
| character_set_results           | latin1
| character_set_server            | latin1
| character_set_system            | utf8
| character_sets_dir              | /usr/share/mysql/charsets/
| collation_connection            | latin1_swedish_ci
| collation_database              | utf8_general_ci
| collation_server                | latin1_swedish_ci  
 ...
по этому сами данные были в utf8, а метаданные таблички говорили, что она в
latin1, и соединение в latin1. короче, всё экспортировал так:
ssh:~ # mysqldump --default-character-set=latin1 -u root -p -h localhost -B database | sed 's/latin1/utf8/' > /home/ssh/dump.sql
теперь русский текст отображаться нормально, далее залил в бд этот бекап и вуууоля :cool:

Duncon спасибо за помощь!!!
Ответить