PDA

Просмотр полной версии : Вероломный UTF8?


Amarok
05.11.2007, 13:24
Добрый!

Лютая борьба с языком продолжается :(

А наличии MySQL 5.0.21 и php 5.x

1. В базе установлена кодировка utf8_general_ci.
2. В localconf.php прописано:
$TYPO3_CONF_VARS['SYS']['setDBinit'] = 'SET NAMES utf8; SET character_set_connection = utf8;'; (перепробовал все вариации :) )

И вроде как все хорошо.. Но...

При добавлении или работе с новостями tt_news вылазит гнусное:
(Warning: xml_parser_set_option() [function.xml-parser-set-option]: Unsupported target encoding "windows-1251" in ..class.t3lib_div.php on line 2173

Подскажите как одолеть?
Заранее спасибо за помощь!

П.С.
Строчка
$TYPO3_CONF_VARS["BE"]["forceCharset"] = 'utf-8';
отсутствует т.к. с ней все в BE наворачивается :(

Pavel Antonov
05.11.2007, 14:04
П.С.
Строчка
$TYPO3_CONF_VARS["BE"]["forceCharset"] = 'utf-8';отсутствует т.к. с ней все в BE наворачивается :(

А зря... так как наворачиваться будет именно если не utf-8. Включите и боритесь именно с ошибками при включенном utf-8.

Amarok
05.11.2007, 14:42
А зря... так как наворачиваться будет именно если не utf-8. Включите и боритесь именно с ошибками при включенном utf-8.

Если вставить $TYPO3_CONF_VARS["BE"]["forceCharset"] = 'utf-8';
То BE приобретает не очень пристойный вид :( А нормально отображается только, то что берется из БД...
http://img149.imageshack.us/img149/2199/screenbb1.png
Как победить?

void
05.11.2007, 15:36
Вообще при выставленной невовремя forceCharset у вас дерево должно перекосячить, а меню остаться нормальным. Ощущение, что где-то в .htaccess надо добавить AddDefaultCharset utf-8

-=UncleByte=-
05.11.2007, 16:54
Вообще говоря мне в такой же примерно ситуации помогло включение $TYPO3_CONF_VARS['SYS']['setDBinit'] = 'SET NAMES utf8; SET character_set_connection = utf8;'; в localconf.php еще до установки, а не в процессе ее.
Ну и, если это возможно, включить все в самой базе в utf-8 и, само собой разумеется, force-charset в localconf.php и render-charset в TS тоже прописать в utf-8.

void
05.11.2007, 17:47
А вообще, лучше всего перед устанвкой всё-таки читать FAQ (http://wiki.typo3.biz/faq)

Amarok
05.11.2007, 22:13
Спасибо всем откликнувшимся!

Все снес. Поставил как написано в FAQ и учел все добавления.
0. Установил кодировку сайта utf-8 (сделал через панель управления хостера, проверил phpinfo() )
1. Базу создал заранее: utf8_unicode_ci
2. При установке задал [SYS][setDBinit] = SET NAMES utf8; SET character_set_connection = utf8; и ['BE']['forceCharset'] = utf-8

В BE русский показывается нормально, однако теперь кулебяка следующего характера: добавляю в дерево сайта страницу с названием например "Главный шаблон" и получаю:
102: These fields are not properly updated in database: (title) Probably value mismatch with fieldtype.

После чего страница добавляется и выглядит:
http://img262.imageshack.us/img262/2838/00fj0.png

Не сдается Typo3 :(
Как можно вылечить?

Valery Romanchev
06.11.2007, 12:10
посмотрите, как выглядят в phpMyAdmin те записи, которые добавили - Т.е должный видеть все правильно "Главный шаблон"
(phpMyAdmin может служить эталоном - настраивать надо так, что бы в нем все было ОК)

есть еще такие грабли: если тоже самый юзер коннектится к другой базе (без SET NAMES..), то могут быть проблемы

Pavel Antonov
06.11.2007, 13:38
А у Апача не стоит каких нибудь перекодировок? Так называемый "русский-апач" содержит всякие настройки по перекодировке трафика на лету, чем портит все и вся.

Valery Romanchev
06.11.2007, 15:47
А у Апача не стоит каких нибудь перекодировок? Так называемый "русский-апач" содержит всякие настройки по перекодировке трафика на лету, чем портит все и вся.
ага.. это надо проверить обязательно
на одном сайте я это лечил в .htaccess

#AddCharset UTF-8 .php
#AddCharset UTF-8 .html
#CharsetDefault UTF-8
#AddDefaultCharset UTF-8
CharsetDisable On

Amarok
06.11.2007, 23:18
посмотрите, как выглядят в phpMyAdmin те записи, которые добавилиВыглядят криво. Если отредактировать то выглядят нормально, но в Typo3 уже не номарльно...
А у Апача не стоит каких нибудь перекодировок? Хмм. А как бы это можно проверить? Или интересоваться у хостера?
на одном сайте я это лечил в .htaccess
Попробовал - не помогло :(