PDA

Просмотр полной версии : Иероглифы UTF8 и windows1251


hworld
22.04.2007, 10:52
Когда ставлю кодироку UTF8, то BackEnd сходит с ума. Весь русский текст заменяется иероглифами (похоже на просмотр теста UTF8 в win-1251 кодировке). Причём дерево сайта отображается нормально (база UTF-8). FontEnd работает нормально.
При windows-1251 всё бы устраивало, но вот ошибка надоедливая выскакивает:
Warning: xml_parser_set_option() [function.xml-parser-set-option]: Unsupported target encoding "windows-1251" in /home/хххххх/public_html/typo3_src-4.1.1/t3lib/class.t3lib_div.php on line 2173

На другом хостинге с такими же настройками всё работает нормально. Может это связано с локалью Apach'a или PHP.

Посоветуйте как обойти.

Описание:
Версия 4.1.1
Хостинг у Агавы.

прописано
$TYPO3_CONF_VARS['SYS']['setDBinit'] = 'SET NAMES utf8; SET character_set_connection = utf8;';
$TYPO3_CONF_VARS['BE']['forceCharset'] = 'utf-8';

PhilD
22.04.2007, 11:49
Правильно ли я понял, что сначала был создан сайт с forceCharset = windows-1251, забит контент, а потом вы поставили forceCharset = utf-8 ?

Valery Romanchev
22.04.2007, 17:31
Когда ставлю кодироку UTF8, то BackEnd сходит с ума. Весь русский текст заменяется иероглифами (похоже на просмотр теста UTF8 в win-1251 кодировке). Причём дерево сайта отображается нормально (база UTF-8). FontEnd работает нормально.
При windows-1251 всё бы устраивало, но вот ошибка надоедливая выскакивает:Warning: xml_parser_set_option() [function.xml-parser-set-option]: Unsupported target encoding "windows-1251" in /home/хххххх/public_html/typo3_src-4.1.1/t3lib/class.t3lib_div.php on line 2173На другом хостинге с такими же настройками всё работает нормально. Может это связано с локалью Apach'a или PHP.

это скорее всего связано с xml библиотеками в PHP5.
Т.е. нельзя использовать TYPO3 c windows-1251 на сервере с PHP5

hworld
23.04.2007, 00:08
да база была в win1251, но я её перекодировал. Тут всё нормально.
Суть в том, что те сообщения которые отображаются неправльно, берутся не из базы, а из файлов локализации xml и а вот в них уже точно кодировка UTF-8.

Мне интересно почему так происходит. По всей видимости идёт двойное преобразование.
Например: UTF-8 из Xml в наглую преобразуется в win1251 затем в utf-8 для отображения на бекэнде.
Мне бы это не мешало, можно и на англ. бекэнде посидеть, но очень хотелось бы разобраться почему так, да и realurl глючит:(
на сервере phpinfo показал

CHARSET windows-1251
SOURCE_CHARSET windows-1251
_SERVER["CHARSET"] windows-1251
_SERVER["SOURCE_CHARSET"] windows-1251
_ENV["CHARSET"] windows-1251

Valery Romanchev
23.04.2007, 01:00
главный вопрос:
у Вас пхп какой?

если PHP5 - то забудьте про win-1251, нужно везде юзать utf-8
(или можите попробовать перепилить напильником несколько функций в ядре TYPO3 - браться за это не советую)

Кстати - апач может свою лепту в проблемы с кодировками вносить (если он старый и "русский")
я лечил это в одном месте в .htaccess
CharsetDisable On

hworld
23.04.2007, 01:15
Пмогло. Примного благодарен!!!

hworld
23.04.2007, 01:50
Рано обрадовался. Теперь в базе происходит двойное преобразование в UTF-8. Вот же ересь :))

теперь нужно отключить преобразование и на стороне MySql??

hworld
23.04.2007, 13:25
Временный итог: пришлось остаться на windows-1251 и подправить файл ядра, дабы небыло сообщения об ошибке :) Не люблю подобные выходы. Но пока здравого выхода не нашёл.
Будем искать

PhilD
23.04.2007, 14:24
может быть было проще отключить (перенаправить в файл) варнинги, чем править код?