Войти

Показать полную графическую версию : Cайт не распознаёт восточные кодировки


ManHack
30-07-2008, 21:21
Здравствуйте.
Проблема: не распознаются символы восточных кодировок на сайте (заменяются ??? ???)
Конфиг сервера: Apache/2.2.4 (Win32) mod_ssl/2.2.4 OpenSSL/0.9.8d PHP/5.2.4 SQL version 5
Я использую Mambo CMS.
В чём причина нераспознавания символов - в HTTP-сервере или в самой CMS? И как это исправть?

ManHack
30-07-2008, 23:41
В дополнение: в системе кодировки установлены и нормально работают (отображаются на веб-страницах, в эксплорере и разных документах)

vadimiron
01-08-2008, 10:40
в самой CMS »

А какая база?? Вы уверены, что SQL-Server?? Может всё таки MySQL??

ManHack
01-08-2008, 10:59
MySQL сейчас используется.
И, скорее всего, когда сайт будет готов, на хостинге будет тот же MySQL 5.x.x

vadimiron
01-08-2008, 11:55
ManHack,
Если есть доступ к файлу настроек базы данных, то можно менять кодировку самой базы - поставьте всё на utf8.

здесь пример (http://forum.oszone.ru/thread-112563.html)

ManHack
01-08-2008, 15:18
То ли я чего-то недопонимаю, то ли действительно всё так плохо...
Поменял кодировку в БД и на главной странице phpMyAdmin на utf8_unicode_ci.
На рисунке показана часть списка таблиц в БД. Так и должно быть? или кодировка у таблиц действительно не изменилась?
Вобщем, желаемого результата я пока не достиг.
Скриншот приложен.
И где находятся my.ini и my.cnf - понятия не имею, просвятите меня пожалуйста! мне кажется их у меня нет (потому что их действительно нет).
Даже my.inf и my.conf, или my.cfg - тоже нет.

vadimiron
01-08-2008, 15:58
ManHack,
В теме, которую вам давал, написано, что изменение кодировки на существующие таблицы и базы не распространяется - их надо ручками править. Для каждой таблицы всего один запрос в phpmyadmin-е. За 5 минут справитесь

ManHack
01-08-2008, 23:08
Cправился, но ничего не изменилось :(

Sham
02-08-2008, 02:53
ManHack, проверьте character-sets-dir (может нет там нужного набора символов (http://www.mysql.ru/docs/man/Problems_with_character_sets.html)). И не понятно, в какой кодировке текст изначально в таблицах...

ManHack
03-08-2008, 14:21
Боже! (левый)... ГДЕ проверить? В настройках phpMyAdmin эти самые настройки менять и не позволяет вовсе О.о

И не понятно, в какой кодировке текст изначально в таблицах...
Я для каждой таблицы уже поставил utf8_unicode_ci
вы это имели ввиду?
Из таблиц поднимаются русские и латинские тексты с осными символами (символ копирайт - уже фигушки, не работает) и арабскими цифрами. Должны ещё иероглифы подниматься, но они, как и большинство нестандартных символов, заменяются ??? ??? ????
В системе требуемые кодировки установлены (т.е. тот же webmoney.com вполне читабелен, а не БББ Б ББ ???? Б)

Sham
05-08-2008, 01:03
character-sets-dir это директива из my.cnf, где указан путь к папке с наборами символов, которые юзает MySQL. Я предположил, что не хватает нужных... (не знаю) для каждой таблицы уже поставил utf8_unicode_ci »
afaik текст в таблицах остается в прежней кодировке. afaik когда меняется кодировка таблицы - это значит, мы говорим мусклу, какую кодовую страницу юзать для обработки текста или вывода (кодировка самого текста при этом не меняется)... кодировка таблиц должна соответствовать кодировке текста (иначе, например, будет неправильная сортировка, или поиск)...
попробуйте вначале скрипта выполнять запрос SET NAMES <кодировка> например SET NAMES cp1251 - для кириллицы... и ставить другие кодировки

ManHack
07-08-2008, 18:35
В папке share/charsets не оказалось файла utf8.xml
вообще ничего в ключе *UTF*
Где его взять?

Sham
08-08-2008, 03:42
имхо его и не должно быть... utf встроен в MySQL (как и еще ряд кодировок)... полный список в файле Index.xml (там точно должно быть)... другое дело, если сам текст в таблице у вас не UTF, то используется соотв. наборы символов (восточный...)... мб у вас параметры запуска неправильные (в мануале подробно все описано)




© OSzone.net 2001-2012