1 (изменено: missteriselena, 2009-08-17 11:10:37)

Тема: ПРОБЛЕМА: Каракули вместо русских букв в PHP my Admin

Здравствуйте!
Сам сайт  в win-1251cp. И весь текст в нем нормально читаем. И через админку нормально добавляется.
А вот захожу в phpmyadmin и там каракули... Вот такие вот: "????????????? ?????????? ??????????"
База данных со сравнением utf8_general_ci
Пыталась переставлять сравнение на win 1251cp но положительного результата это не дало.

Соответственно, когда делаю дамп, то получаю те же каракули...
На сайте стоит старенькая джумла, если это имеет значение. Вот сам дамп avs . kz на всякий случай...

по запросу show variables like char%
character_set_client      latin1
character_set_connection     latin1
character_set_database     latin1
character_set_filesystem     binary
character_set_results     latin1
character_set_server     latin1
character_set_system     utf8
character_sets_dir     /usr/share/mysql/charsets/
доступа к конфигурационному файлу у меня нету.
Смогут ли мне помочь сисадмины хостинга?
И могу ли я справиться сама? Мне просто нужен нормальный дамп.

Я не эксперт, мне можно объяснять "как для тупых":)

Заранее - Спасибо!

2

Re: ПРОБЛЕМА: Каракули вместо русских букв в PHP my Admin

missteriselena
Перекодированный дамп отправил на вашу почту.

После импорта дампа в файле includes\database.php раскомментируйте строку:
//@mysql_query("SET NAMES 'utf8'", $this->_resource);

и измените ее следующим образом:
@mysql_query("SET NAMES 'cp1251'", $this->_resource);

Данная настройка будет работать только с перекодированным дампом.

Re: ПРОБЛЕМА: Каракули вместо русских букв в PHP my Admin

Hanut!
Во-первых, БОЛЬШОЕ спасибо за помощь.
Если возможно, то пожалуйста расскажите мне как Вы перекодировать дамп, если есть какие-то программы или методы, т.к. в будущем при возникновении подобных проблем хотелось бы быть в состоянии самой с ними справляться!
И в чем причина данного "косяка"?

4

Re: ПРОБЛЕМА: Каракули вместо русских букв в PHP my Admin

missteriselena
Причина появления крякозябов в некорректной кодировке соединения с MySQL: вместо требуемой cp1251 данные приходили в кодировке latin1, отсюда и такие символы.

В вашем случае проблемы можно было избежать, если изначально правильно установить кодировку соединения с MySQL, что делается упомянутым выше запросом SET NAMES cp1251.

Перекодировать данные можно с помощью iconv.