Здравствуйте. У меня проблема с кодировкой на страницах. Никак не пойму в чем дело. До ужаса обидно все бросать, ведь все готово уже почти. Но вот на сайте за место текста видно толко иероглифы. Если менять кодировку в браузере, то все работает. С базой не должно быть проблем. На ней стоит кодировка utf8_general_ci. Ума не приложу, что же не так. Помогите , пожалуйста.
(Ставил drupal 6.10)
Комментарии
Сие очень страннно, потому как наличие UTF-8 гарантирует, что проблем не должно быть.
Единственное, что мне приходит на ум: у вас на базе кодировка, которая не соответствует СОДЕРЖИМОМУ базы. Например кодировка указана UTF, а на самом деле данные в cp1251.
может быть у вас в браузере не УТФ? Поставьте на автоопределение.
ставил на браузере автоопределение. заходил с других браузеров. и даже с других компьютеров. подскажите что делать, умоляю.
Azerot
как это проверить? я смотрел, таблицы все в верной кодировке! или можно как-то иначе прверить и как-то устранить эту проблему? Ели бы кто-то подсказал бы, было бы просто потрясающе.
Проверить помоему можно так: выгрузить дамп БД. Посмотреть какая в дампе кодировка и соответственно найти тот текст, который отображается криво на сайте - проверить что он именно в этой же кодировке.
Я просто помню у нас такие косяки были с Битриксом. Уж не знаю как клиенту это удавалось, но часть данных в БД была в UTF-8, а часть в cp1251 поэтому чудеса были ещё те при показе
И ещё, случайно ничего не меняли в php.ini? Там если неразумно поменять такие вещи как ;mbstring.func_overload и mbstring.internal_encoding можно очень здорово попухнуть.
php.ini я не трогал.
А на сайте вообще весь текст отображается криво
Вообще в mysql не очень силен.
Вернее, мало что понимаю из того, что мне говорит phpMyAdmin (хост дает свой phpMyAdmin - 2.9.0-rc1):
MySQL-кодировка: UTF-8 Unicode (utf8) - этот параметр нельзя менять, по крайней мере через phpMyAdmin
Сопоставление соединения с MySQL: utf8_general_ci.
ну и сама база в utf8_general_ci.
и все таблицы в базе тоже в utf8_general_ci.
Нет доступа в панель управления , которую предоставляет хостинг. в ней можно создать свою базу и всё остальное настроить.
Можно ли что-то сделать с тем, что есть или нужен полный доступ ко всем прелестям хостинга?
Дамп базы можно сделать и через phpMyAdmin.
Но вообще доступ по SSH вам бы не помешал.
На то, что вам пишет phpMyAdmin можете забить. Выгружайте дамп БД и смотрите, только так.
Решил проблему.
Проблема была в том, что сервер по умолчанию отдавал контент в win1251.
Я подправил .htaccess, прописав в нем кодировку по умолчанию utf8
Обычно решается добавлением
сразу после коннекта. Пример:
mysql_query("SET NAMES 'utf8'");