1

Тема: Проблемы с кодировкой дампа.

Понимаю, что тема уже десятки раз поднималась, но бьюсь уже 3-й день и стандартные способы не помогают. Делаю дамп phpmyadmin-ом на сервере с такими настройками:

character set client    utf8
(Глобальное значение)    latin1
character set connection    cp1251
(Глобальное значение)    latin1
character set database    latin1
character set filesystem    binary
character set results    utf8
(Глобальное значение)    latin1
character set server    latin1
character set system    utf8
character sets dir    /usr/local/share/mysql/charsets/
collation connection    cp1251_general_ci
(Глобальное значение)    latin1_swedish_ci
collation database    latin1_swedish_ci
collation server    latin1_swedish_ci

Все переносимые таблицы базы имеют:
Сравнение: utf8_unicode_ci

В дампе получаются символы типа: 'Iao??ii?o n ?a?ieeuieoae'.
Доступа к настройкам MySQL сервера не имею. Как переконвертировать дамп в cp1251?

2

Re: Проблемы с кодировкой дампа.

SEcoder
Страницы сайта в какой кодировке? Что вы делали с таблицами, не меняли ли кодировки/сравнение в phpMyAdmin? Такие странные символы даже не знаю как могли получиться. Попробуйте открыть дамп с помощью Notepad++. И посмотрите как данные выглядят в phpMyAdmin.

3

Re: Проблемы с кодировкой дампа.

Hanut сказал:

SEcoder
Страницы сайта в какой кодировке? Что вы делали с таблицами, не меняли ли кодировки/сравнение в phpMyAdmin? Такие странные символы даже не знаю как могли получиться. Попробуйте открыть дамп с помощью Notepad++. И посмотрите как данные выглядят в phpMyAdmin.

Текст предположительно в cp1251, собственно была установлена Danneo CMS, она эти таблицы и формировала. Руками таблицы не правились, все по дефолту. В phpMyAdmin данные выглядят как раз такими иероглифами, но Danneo отображает страницы нормально. Notepad++ так же отображает.

4

Re: Проблемы с кодировкой дампа.

SEcoder
Покажите пример того, как данные отображаются в phpMyAdmin. Как отображает Notepad++? Кодировку сайта можно посмотреть в браузере: в IE правой кнопкой на странице Charset Encoding.

5

Re: Проблемы с кодировкой дампа.

Hanut сказал:

SEcoder
Покажите пример того, как данные отображаются в phpMyAdmin. Как отображает Notepad++? Кодировку сайта можно посмотреть в браузере: в IE правой кнопкой на странице Charset Encoding.

PHPMyAdmin: ???????????? ???????? ? ?????? ?????? ?????????  19 ??????? - 2 ????? 2009 ?
Notepad++: Ia?niiaeuiay aunoaaea a caaiee Niaaoa Oaaa?aoee  19 oaa?aey - 2 ia?oa 2009 a
Кодировка - win1251

6

Re: Проблемы с кодировкой дампа.

SEcoder
Крякозябы в phpMyAdmin ясно как получились, их можно будет перекодировать, если создать дамп в котором символы будут выглядеть так же. А что получается в Notepad++ совершенно не понятно.  Ничего из настроек не трогаете при создании дампа и его открытии?

7

Re: Проблемы с кодировкой дампа.

Hanut сказал:

SEcoder
Крякозябы в phpMyAdmin ясно как получились, их можно будет перекодировать, если создать дамп в котором символы будут выглядеть так же. А что получается в Notepad++ совершенно не понятно.  Ничего из настроек не трогаете при создании дампа и его открытии?

В дампе они итак выглядят также как и в PHPMyAdmin-е. Каким образом теперь их можно сконвертировать? Notepad++ отображает дамп так же, как и виндовый Notepad.

8

Re: Проблемы с кодировкой дампа.

SEcoder
Скрипт перекодировки отправил на вашу почту.

После перекодирования дампа необходимо настроить кодировку соединения MySQL. Если используется широко распространенный скрипт, возможно у него есть настройка отвечающая за установку кодировки соединения с MySQL и в этом случае ее потребуется установить в cp1251.

Если скрипт самописанный, то необходимо найти в файлах скрипта вызов функции mysql_connect и сразу после нее добавить строку:

mysql_query('SET NAMES cp1251');

9

Re: Проблемы с кодировкой дампа.

Огромное спасибо Hanut! Проблема решена при помощи точных его инструкций.