Змінюй хід війни! Допомагай ЗСУ!

Перенос базы SQL проблема с кодировками

  • Автор теми Автор теми Explore
  • Дата створення Дата створення
Статус: Офлайн
Реєстрація: 02.07.2009
Повідом.: 95
Перенос базы SQL проблема с кодировками

Делаю дамп базы с локального компа. кодировка UTF-8. Связывание UTF8_general_ci
в файле дампа русский текст есть.

импортирую в базу на хостинге, выбираю кодировку UTF-8
в итоге все русские буквы пропадают. не ???, а просто пусто.

в чем может быть дело?
 
я бы для начала сузил круг поиска -- открыл дамп в текстовом редакторе и убедился что он действительно UTF8
 
Дамп с BOM-ом или без?
Да и откуда в дампе взяться русским чарактерам в явном виде?
 
сделай все текстовые поля blob-ами, импортируй и верни типы
 
я бы для начала сузил круг поиска -- открыл дамп в текстовом редакторе и убедился что он действительно UTF8
Notepad++ показывает русские буквы этого достаточно? или нужно блокнотом кракозябры увидеть?

Дамп с BOM-ом или без?
Да и откуда в дампе взяться русским чарактерам в явном виде?
перевое предложение не понял

второе: формируется db.sql.gz, если его распаковать в нем db.sql, если его открыть в Notepad++ там все на русском что надо, в том числе и в строках типа INSERT INTO

сделай все текстовые поля blob-ами, импортируй и верни типы
это как простите?
раскройте тему подробней.
и как мне в 100+ таблицах это сделать не руками?
 
ВОМ означает Byte Order Mark. Это первые три байта в файле, которые описывают порядок и количество байт, которыми кодируется UTF-8.
Все продвинутые тектовые редакторы если находят этот маркер, раскодируют UTF-8 из файла в читабельный вид.
Открой дамп в хекс-редакторе и посмотри, есть оно там или нет.
Если нет то скорей всего и русский текст идет в win-1251 или чего там у тебя, раз его твой Notepad++ корректно показывает.
Еще бывает что СУБД не знает о BOM-е и матюкается на недопустимые символы.
В любом случае оно тебе не нужно, раз ты при импорте руками кодировку выставляешь.
 
Дамп с BOM-ом или без?
драсьте, откуда BOM в sql файле?

Да и откуда в дампе взяться русским чарактерам в явном виде?
щито?

Notepad++ показывает русские буквы этого достаточно? или нужно блокнотом кракозябры увидеть?
ну если notepad++ говорит что это UTF8 тогда ок
если нотпад++ не говорит кодировку -- простейший способ -- сохранить как txt и открыть браузером.

если дамп действительно в utf8 -- я бы еще обратил внимание на начало дампа, там есть запросы типа SET NAMES ... вот еще там бывают косяки.

если косяков нет -- то скорее всего дамп залился правильно, но неправильно выводится, и тут уже нужно ковырять скрипты и их настройки
 
Глупости пишете, господа.
Проблема не в том, что у пациента дамп неправильный - ибо скорее всего сделал он его стандартным мускульным дампером, который работает на "ура".
Проблема скорее всего в том, что при накате скрипта в мускульном клиенте он не выбрал нужную кодировку. Как ни парадоксально, но простого указания того, что таблички в УТФ-8 ему не хватает, я с таким сталкивался.

ТС, посмотри на команду charset.
 
Глупости пишете, господа.
ок

Проблема не в том, что у пациента дамп неправильный - ибо скорее всего сделал он его стандартным мускульным дампером, который работает на "ура".
та хрен знает чем и как он его делал, поэтому вместо того чтобы думать-гадать лучше убедиться что все ок.

Проблема скорее всего в том, что при накате скрипта в мускульном клиенте он не выбрал нужную кодировку. Как ни парадоксально, но простого указания того, что таблички в УТФ-8 ему не хватает, я с таким сталкивался.
при накате скрипта достаточно тех самых SET NAMES ... которые обычно есть в начале того самого скрипта

ТС, посмотри на команду charset.

вот кусочек man mysql:
charset charset_name, \C charset_name

The charset command changes the default character set and issues a
SET NAMES statement.
 
всем привет

справился.
по скольку я умеренные лентяй то воспользовался прогой для синхронизации структуры и данных.
там сначала тоже не получилось, а потом я в настройках поставил не игнорировать BOM данные и все получилось.

еще была проблема в том, что залитые php с русским текстом превращаются в ???? помогло в Notepad++ выбрать пункт "перекодировать в UTF-8 без BOM"

всем спасибо.
 
Назад
Зверху Знизу