Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Вебмастеру (http://forum.oszone.net/forumdisplay.php?f=22)
-   -   Cайт не распознаёт восточные кодировки (http://forum.oszone.net/showthread.php?t=112715)

ManHack 30-07-2008 21:21 864668

Cайт не распознаёт восточные кодировки
 
Здравствуйте.
Проблема: не распознаются символы восточных кодировок на сайте (заменяются ??? ???)
Конфиг сервера: 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 864765

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

vadimiron 01-08-2008 10:40 865724

Цитата:

Цитата ManHack
в самой CMS »

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

ManHack 01-08-2008 10:59 865739

MySQL сейчас используется.
И, скорее всего, когда сайт будет готов, на хостинге будет тот же MySQL 5.x.x

vadimiron 01-08-2008 11:55 865770

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

здесь пример

ManHack 01-08-2008 15:18 865907

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

vadimiron 01-08-2008 15:58 865936

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

ManHack 01-08-2008 23:08 866180

Cправился, но ничего не изменилось :(

Sham 02-08-2008 02:53 866259

ManHack, проверьте character-sets-dir (может нет там нужного набора символов). И не понятно, в какой кодировке текст изначально в таблицах...

ManHack 03-08-2008 14:21 866921

Боже! (левый)... ГДЕ проверить? В настройках phpMyAdmin эти самые настройки менять и не позволяет вовсе О.о

Цитата:

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

Sham 05-08-2008 01:03 868016

character-sets-dir это директива из my.cnf, где указан путь к папке с наборами символов, которые юзает MySQL. Я предположил, что не хватает нужных... (не знаю)
Цитата:

Цитата ManHack
для каждой таблицы уже поставил utf8_unicode_ci »

afaik текст в таблицах остается в прежней кодировке. afaik когда меняется кодировка таблицы - это значит, мы говорим мусклу, какую кодовую страницу юзать для обработки текста или вывода (кодировка самого текста при этом не меняется)... кодировка таблиц должна соответствовать кодировке текста (иначе, например, будет неправильная сортировка, или поиск)...
попробуйте вначале скрипта выполнять запрос
Код:

SET NAMES <кодировка>
например SET NAMES cp1251 - для кириллицы... и ставить другие кодировки

ManHack 07-08-2008 18:35 870513

В папке share/charsets не оказалось файла utf8.xml
вообще ничего в ключе *UTF*
Где его взять?

Sham 08-08-2008 03:42 870824

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


Время: 03:01.

Время: 03:01.
© OSzone.net 2001-