Russian TYPO3 community

Russian TYPO3 community (http://forum.typo3.ru/index.php)
-   Общие вопросы (http://forum.typo3.ru/forumdisplay.php?f=12)
-   -   проблемы с русским текстом после переноса сайта (http://forum.typo3.ru/showthread.php?t=1447)

demav 25.05.2006 14:50

проблемы с русским текстом после переноса сайта
 
Использую кодировку UTF8. В [BE][forceCharset] стоит utf-8
Сам BE нормально показывает на русском.

На локальном компьютере FE отображается нормально - на русском.

Если смотреть в phpMyAdmin - в полях с русским - кракозяблы (с умляутами).

Теперь переношу сайт на FreeBSD (данные переношу через дамп, созданный phpMyAdmin'ом).
Получаю - BE на русском, FE - данные вопросительными знаками. Причем, то, что в самом шаблоне сделано в UTF-8 - нормально отображается. В BE также вопросительными знаками видны русские названия страниц.
Очевидно, проблема в формате данных в БД.


Кодировки у базы, таблиц и полей - одинаковые.
Если смотреть на юниксовом сервере PhpMyAdmin, то внешне - те же самые кракозяблы, ничем не отличаются.

Что делал.

1)
Пробовал в localconf.php писать.

$TYPO3_CONF_VARS['SYS']['setDBinit'] = "SET NAMES 'utf8'".chr(10)."SET CHARACTER SET 'utf8'";

(после этого вместо вопросительных знаков появляются те же символы, что и в phpMyAdmin с умляутами, но все равно не на русском)

2)

в htaccess пробовал такие настройки; включал и выключал их - все одно.

PHP_VALUE mbstring.detect_order UTF-8
PHP_VALUE mbstring.func_overload 2
#CharsetDisable Off
CharsetSourceEnc UTF-8

Правда, сервер валится при CharsetDisable или CharsetTurnOff - с этим не удалось попробовать. Возможно, хостер не дружит с этим...


Куда еще копать, ПОДСКАЖИТЕЕЕЕ!!!

Valery Romanchev 25.05.2006 15:37

какие версии MySQL в обих случаях?
(надо 4.1 или выше)

Цитата:

Если смотреть в phpMyAdmin - в полях с русским - кракозяблы (с умляутами).
базу надо будет конвертировать.
1) сначала в дампе исправить все latin1 -> utf8
2) потом поверх дампа залить t3d сделанный из сайта
(более простой способ пока не нашел)

demav 25.05.2006 15:42

Версия 4.1.14 for Win32

А вот что выдает на никсах:

mysql Ver 14.12 Distrib 5.0.19, for portbld-freebsd5.4 (i386) using 4.3
Т.е., видимо, 5-я версия

demav 25.05.2006 15:49

Цитата:

Сообщение от Valery Romanchev
1) сначала в дампе исправить все latin1 -> utf8
(более простой способ пока не нашел)

а вот это как сделать? попробую в текстовом редакторе "Сохранить как...", но есть ли более красивые способы?

Valery Romanchev 25.05.2006 17:03

Цитата:

а вот это как сделать? попробую в текстовом редакторе "Сохранить как...", но есть ли более красивые способы?
нет.. я имею ввиду в FAR просто заменить слово latin1 на utf8
только сначала ...general_ci и general_cs не забыть поменять.

demav 25.05.2006 18:08

Цитата:

Сообщение от Valery Romanchev
нет.. я имею ввиду в FAR просто заменить слово latin1 на utf8
только сначала ...general_ci и general_cs не забыть поменять.

Хм, однако, нет latin1 нигде в тексте. Там только инсерты... А drop / create table не делается.

Может опишете как вы переносите сайты?

Comrade 25.05.2006 18:13

Проблема повидимому в том как вы делаете дамп. Важно проконтролировать кодировку соединения с MySql на виндовом сервере.

demav 25.05.2006 18:22

Цитата:

Сообщение от Comrade
Проблема повидимому в том как вы делаете дамп. Важно проконтролировать кодировку соединения с MySql на виндовом сервере.

А расскажите как надо :)
Формат результирующего файла получается UTF-8.
Пробовал ставить при экспорте "MYSQL 40 compability" или "Использовать шестнадцатиричные (hexadecimal) бинарные" - не помогает.

Вообще, пользовался phpMyAdmin для переноса тысячу и один раз, все было нормально на windows1251. А вот UTF8 меня прямо подкосило :)

Не оставьте в беде :)

demav 26.05.2006 11:40

перенес таки
 
Похоже, проблема была с кодировками таблиц на удаленном сервере
Убил базу на хостере (юникс), заново создал ее. Перенес через T3D - все ок, даже в PhpAdmin на русском стало :)

Но возникла ошибка - в FE если сбросить кэш, то все нормально отображается, а если выводятся кэшированные данные, то страница вообще не показывается и сильная ругань )

Обнаружил строку в localconf.php (которую раньше вставлял): $TYPO3_CONF_VARS['SYS']['setDBinit'] = 'SET NAMES utf8'.chr(10).'SET CHARACTER SET utf8';
Убрал ее. Тогда опять кодировка слетела.

Пришлось еще раз через T3D перенести - теперь все ок. Правда, в PhpMyAdmin опять кракозяблы, но это уже как родное :)


Часовой пояс GMT +4, время: 00:56.

Работает на vBulletin® версия 3.8.1.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot