Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В. Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В. PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В. PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Разное

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Опять кодировка, опять юникод
 
 автор: SHAman   (06.09.2007 в 18:16)   письмо автору
 
 

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

Код на Perl. База MySQL, кодировка utf8_general_ci. Может, кто подскажет, как избавиться от напасти?

   
 
 автор: sms-send   (06.09.2007 в 20:07)   письмо автору
 
   для: SHAman   (06.09.2007 в 18:16)
 

http://softtime.ru/forum/read.php?id_forum=3&id_theme=36727&page=1
Ничего из этого мне так и не помогло...

   
 
 автор: SHAman   (07.09.2007 в 11:31)   письмо автору
 
   для: sms-send   (06.09.2007 в 20:07)
 

Да, уже натыкался на такие решения... мне тоже не помогает. Уже везде кодировка стоит какая надо, но все равно жрет "ш" и "И" :(
Вот уж не ожидал такого трабла...

   
 
 автор: Trianon   (07.09.2007 в 11:49)   письмо автору
 
   для: SHAman   (07.09.2007 в 11:31)
 

Я вот чего не понимаю.
Сколько ни пытаюсь у себя эту ошику промоделировать - не выходит.
Ну нет её и всё.

Только что попробовал.
Server: mysql 5.0.18-max (win2k)
Client: Apache/1.3.33(Win32), php 5.1.1, php_mysql.dll, Api version: 4.1.7

   
 
 автор: Trianon   (07.09.2007 в 12:09)   письмо автору
 
   для: Trianon   (07.09.2007 в 11:49)
 


<?php

mysql_connect
('localhost''******''******************');
mysql_select_db('utfbase');
mysql_query("SET NAMES 'utf8'");
mysql_query("INSERT INTO tab SET fld1=0xD098D188, fld2=0xD098D188");
mysql_query("INSERT INTO tab SET fld1='\xD0\x98\xD1\x88', fld2='\xD0\x98\xD1\x88'");

for(
$res mysql_query("SELECT * FROM tab");
     
$rowmysql_fetch_assoc($res);
      )
{
    foreach(
$row as $key =>$val)
     echo 
"$key$val<br/>";
}

?>


id: 1
fld1: Иш
fld2: Иш
id: 2
fld1: Иш
fld2: Иш

   
 
 автор: SHAman   (07.09.2007 в 12:22)   письмо автору
 
   для: Trianon   (07.09.2007 в 12:09)
 

Возможно, дело в версии. У меня Денвер с MySQL 4.116.
SET NAMES делал - не помогает. Может быть, проблема в том, что изначально база создавалась в cp1251_general_ci, а потом переводилась в юникод?

   
 
 автор: Trianon   (07.09.2007 в 12:39)   письмо автору
 
   для: SHAman   (07.09.2007 в 12:22)
 

У меня тоже денвер. И что? Денвер - лишь комплект программ.
дамп структуры БД приведите пожалуйста.

   
 
 автор: SHAman   (09.09.2007 в 17:30)   письмо автору
 
   для: Trianon   (07.09.2007 в 12:39)
 

Проблема решилась пересозданием базы. Видимо, где-то внутренний глюк произошел, когда я переводил базу из cp_1251 в utf8_general_ci. Удалил старую базу, создал новую и все заработало как надо.

Всем спасибо за участие.

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования