|
|
|
| Вот описание таблицы:
CREATE TABLE `msgs` (
`id` int(11) NOT NULL auto_increment,
`time` timestamp NOT NULL default CURRENT_TIMESTAMP,
`ip` varchar(20) character set utf8 NOT NULL,
`host` varchar(30) character set utf8 NOT NULL,
`msisdn` varchar(15) character set utf8 NOT NULL,
`uagent` varchar(50) character set utf8 NOT NULL,
`name` varchar(30) character set utf8 NOT NULL,
`email` varchar(30) character set utf8 NOT NULL,
`text` varchar(255) character set utf8 NOT NULL,
`answer` varchar(255) character set utf8 NOT NULL,
KEY `id` (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_bin AUTO_INCREMENT=26 ;
|
Скрипт работает в кодировке UTF-8.
Текст приходит из формы и записывается в базу в нормальном виде (текст "ИмяИмя"):
D0 98 D0 BC D1 8F D0 98 D0 BC D1 8F
А вот это уже возвращает база, при выборке:
D0 3F D0 BC D1 8F D0 3F D0 BC D1 8F
Изменяются только некоторые кирилические символы (например, "И", байты "D0 98" меняются на "D0 3F").
В чём дело? | |
|
|
|
|
|
|
|
для: sms-send
(28.04.2007 в 23:23)
| | При выборке устанавливаете кодировку соединения при помощи запроса?
| |
|
|
|
|
|
|
|
для: cheops
(29.04.2007 в 01:52)
| | Сейчас попробовал, но ничего не изменилось. Вот phpinfo | |
|
|
|
|
|
|
|
для: cheops
(29.04.2007 в 01:52)
| | Кстати, заметил, что это происходит только с заглавной буквой "И". Выход: просто реплейсить этот байт на верный.
И всё же почему так происходит? Хоть кто предположить может? | |
|
|
|
|
|
|
|
для: sms-send
(01.05.2007 в 16:42)
| | Кодировка должна быть utf8_general_ci. Желательно еще:
<?php
mysql_unbuffered_query("SET `character_set_client` = 'utf8';");
mysql_unbuffered_query("SET `character_set_results` = 'utf8';");
mysql_unbuffered_query("SET `collation_connection` = 'utf8_general_ci';");
?>
|
| |
|
|
|