Модераторы: korob2001, ginnie
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> utf-8 объявил геноцид на "ш" и "И", проблемы с кодировкой 
V
    Опции темы
SHAmanovi4
Дата 6.9.2007, 17:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 63
Регистрация: 13.9.2006
Где: почти мск

Репутация: нет
Всего: нет



Проблема вкратце:
Есть двиг. Использует utf-8. Все в этой кодировке: база, скрипты, шаблоны, заголовки, метатеги. Как надо, короче. Но есть одна проблема: двиг устраивает геноцид на символы "ш" и "И". Именно маленькая "ш" и большая "И". Вместо них выводит "?квадратик". Из-за этого не работает RSS. Если в тексте, выводимом RSS нет этих символов - все ОК. Если есть - вообще поток ломается. (IE7 вообще отказывается выводить страницу).

Код на Perl. База MySQL, кодировка utf8_general_ci. Может, кто подскажет, как избавиться от напасти?
PM WWW ICQ   Вверх
nitr
Дата 6.9.2007, 23:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 2543
Регистрация: 10.2.2006
Где: Россия :)

Репутация: 12
Всего: 84



SHAmanovi4, а какие модули используете для "работы" с RSS?
Я проверил на простых файлах, работает нормально и с БД тоже. Какая версия СУБД?

Это сообщение отредактировал(а) nitr - 6.9.2007, 23:45


--------------------
PM   Вверх
Nab
Дата 6.9.2007, 23:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 582
Регистрация: 25.3.2006
Где: Kiev

Репутация: 8
Всего: 37



Я с таким сталкивался при использовании wordpress, который как известно вообще на php, но юзалась mysql с тойже кодировкой...

Я не разбирался досконально, хотя грешил именно на нее, хостер тогда серверный софт обновил. 

Так как блог имел не очень много записей, то исправил все вручную...


--------------------
 Чтобы правильно задать вопрос нужно знать больше половины ответа...
Perl Community 
FREESCO in Ukraine 
PM MAIL   Вверх
nitr
Дата 6.9.2007, 23:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 2543
Регистрация: 10.2.2006
Где: Россия :)

Репутация: 12
Всего: 84



Чтобы не возникало проблем (версии с 4.11 можно так делать ;) )
Код

        $dbh->do( "SET character_set_client = $charset" );
        $dbh->do( "SET character_set_server = $charset" );
        $dbh->do( "SET character_set_database = $charset" );
        $dbh->do( "SET character_set_connection = $charset" );
        $dbh->do( "SET character_set_results = $charset" );
        $dbh->do( "SET NAMES $charset COLLATE utf8_general_ci" );

т.е. как вы видете - проблема в СУБД, а конкретнее в настройках ;) Хотя должно достаточно последней строки...

в php обычно такая строчка
Код

mysql_query("SET NAMES 'utf8' COLLATE 'utf8_general_ci'")


Добавлено @ 00:11
И кстати, покажите какую кодировку вы и спользуете при создании таблицы, и вообще как создается таблица?

Это сообщение отредактировал(а) nitr - 7.9.2007, 00:13


--------------------
PM   Вверх
nitr
Дата 7.9.2007, 00:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 2543
Регистрация: 10.2.2006
Где: Россия :)

Репутация: 12
Всего: 84



примерно так оканчивается запрос к БД
Цитата

... ENGINE = MYISAM CHARACTER SET utf8 COLLATE utf8_general_ci;



--------------------
PM   Вверх
SHAmanovi4
Дата 7.9.2007, 10:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 63
Регистрация: 13.9.2006
Где: почти мск

Репутация: нет
Всего: нет



MySQL версии 4.1.16 (Денвер). База создавалась там же. При создании базы была использована кодировка cp_1251_general_ci. Потом вся база была переведена в юникод. Все текстовые поля были переведены в юникод, как и сами таблицы. Тем не менее, глюк остается.

Пробовал делать SET NAMES. Результата нет.

nitr, модулей для RSS не использую. Лента формируется руками из шаблона.

ЗЫ. Кстати, как сделать так, чтобы в пхпмайадмине нормально отображалось нутро таблиц? Данные хранятся в юникоде, а выводятся иероглифы, как при попытке вывести юникод в вин-1251. При этом, интерфейс пхпмайадмина использует режим "ru-utf-8". Соединение внутреннее так же установлено в utf8_general_ci.
PM WWW ICQ   Вверх
nitr
Дата 8.9.2007, 00:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 2543
Регистрация: 10.2.2006
Где: Россия :)

Репутация: 12
Всего: 84



SHAmanovi4, и в этом может быть проблема, что созданы в кодировке cp1251.
А вы все значения проверяли, или только NAMES ?

А в пхпадмине настройте, кстати и это тоже... в ту степь, что виноваты настройки СУБД. Это неперл!


--------------------
PM   Вверх
SHAmanovi4
Дата 9.9.2007, 16:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 63
Регистрация: 13.9.2006
Где: почти мск

Репутация: нет
Всего: нет



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

Спасибо всем!
PM WWW ICQ   Вверх
nitr
Дата 9.9.2007, 17:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 2543
Регистрация: 10.2.2006
Где: Россия :)

Репутация: 12
Всего: 84



SHAmanovi4, не за что! В случае с utf8, надо точно знать зачем мы её выбрали smile Может иногда проще выбрать "простую" кодировку. А если вы сначала работали с "простой", а потом меняете с перекодировкой utf8, то всегда можно ожидать "глюков" ;)


--------------------
PM   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Perl: CGI программирование"
korob2001
sharq
  • В этом разделе обсуждаются вопросы относящиеся только к CGI программированию
  • Если ваш вопрос не относится к системному или CGI программированию, задавайте его в общем разделе
  • Если ваш вопрос относится к системному программированию, задавайте его здесь
  • Интерпретатор Perl можно скачать здесь ActiveState, O'REILLY, The source for Perl
  • Справочное руководство "Установка perl-модулей", качать здесь


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, korob2001, sharq.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Perl: разработка для Web | Следующая тема »


 




[ Время генерации скрипта: 0.0806 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.