проблема с кодировкой (решена)

Главные вкладки

Аватар пользователя 11th_level 11th_level 27 марта 2009 в 16:31

Здравствуйте. У меня проблема с кодировкой на страницах. Никак не пойму в чем дело. До ужаса обидно все бросать, ведь все готово уже почти. Но вот на сайте за место текста видно толко иероглифы. Если менять кодировку в браузере, то все работает. С базой не должно быть проблем. На ней стоит кодировка utf8_general_ci. Ума не приложу, что же не так. Помогите , пожалуйста.
(Ставил drupal 6.10)

Комментарии

Аватар пользователя Azerot Azerot 27 марта 2009 в 18:10

Сие очень страннно, потому как наличие UTF-8 гарантирует, что проблем не должно быть.
Единственное, что мне приходит на ум: у вас на базе кодировка, которая не соответствует СОДЕРЖИМОМУ базы. Например кодировка указана UTF, а на самом деле данные в cp1251.

Аватар пользователя 11th_level 11th_level 28 марта 2009 в 10:50

ставил на браузере автоопределение. заходил с других браузеров. и даже с других компьютеров. подскажите что делать, умоляю.
Azerot
как это проверить? я смотрел, таблицы все в верной кодировке! или можно как-то иначе прверить и как-то устранить эту проблему? Ели бы кто-то подсказал бы, было бы просто потрясающе.

Аватар пользователя Azerot Azerot 28 марта 2009 в 11:17

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

Я просто помню у нас такие косяки были с Битриксом. Уж не знаю как клиенту это удавалось, но часть данных в БД была в UTF-8, а часть в cp1251 поэтому чудеса были ещё те при показе Smile

И ещё, случайно ничего не меняли в php.ini? Там если неразумно поменять такие вещи как ;mbstring.func_overload и mbstring.internal_encoding можно очень здорово попухнуть.

Аватар пользователя 11th_level 11th_level 6 апреля 2009 в 12:33

php.ini я не трогал.
А на сайте вообще весь текст отображается криво Sad
Вообще в mysql не очень силен.
Вернее, мало что понимаю из того, что мне говорит phpMyAdmin (хост дает свой phpMyAdmin - 2.9.0-rc1):
MySQL-кодировка: UTF-8 Unicode (utf8) - этот параметр нельзя менять, по крайней мере через phpMyAdmin
Сопоставление соединения с MySQL: utf8_general_ci.
ну и сама база в utf8_general_ci.
и все таблицы в базе тоже в utf8_general_ci.

Нет доступа в панель управления , которую предоставляет хостинг. в ней можно создать свою базу и всё остальное настроить.

Можно ли что-то сделать с тем, что есть или нужен полный доступ ко всем прелестям хостинга?

Аватар пользователя Azerot Azerot 28 марта 2009 в 20:24

Дамп базы можно сделать и через phpMyAdmin.
Но вообще доступ по SSH вам бы не помешал.
На то, что вам пишет phpMyAdmin можете забить. Выгружайте дамп БД и смотрите, только так.

Аватар пользователя 11th_level 11th_level 8 апреля 2009 в 16:42

Решил проблему.
Проблема была в том, что сервер по умолчанию отдавал контент в win1251.
Я подправил .htaccess, прописав в нем кодировку по умолчанию utf8

Аватар пользователя Scr1pt1k Scr1pt1k 18 сентября 2010 в 0:50

Обычно решается добавлением

mysql_query("SET NAMES 'utf8'");

сразу после коннекта. Пример:

mysql_connect("server","user","password");
mysql_query("SET NAMES 'utf8'");