Mysql преобразует русский в спецсимволы

Mikelangelo

Новичок
Mysql преобразует русский в спецсимволы

Подскажите,плз:
Перенес сайт на новый хостинг и начались какие-то непонятки с выводом данных из MySql.
Смотрю источник генерируемого html - в нем все, что выводится из базы, представлено примерно в таком виде "&amp#1090;&amp#1077;&amp#1088;&amp#1084;&amp#1086;&amp#1089;&amp#1090;&amp#1072;".
На экране кириллический текст выводится боле-менее норм, но если идет вывод в ячейки таблицы,а название слишком длинное ,то концовка текста тоже преобразуется в такие спец символы. Ну и если нужно в тело письма вставить инфу из базы - та же самая история,все приходит в таких спец символах.
 
zerkms
Намек на то,что кириллица в спецсимволы преобразуется уже в коде php? Так там точно ничего не преобразуется. На локальной версии сайта таких проблем нет,да и на старом хостинге не было=> проблема в настройках Mysql или Апача на конкретном сервере,хотелось бы знать в каких. И phpfaq.ru/debug навряд ли мне чем-то поможет.
 
намек на то, что ты сам должен узнать, кто у тебя где что преобразует. и phpfaq.ru/debug - единственное, что тебе поможет. если ты, конечно, умеешь читать и хочешь решить свою проблему.

допустим, проблема в настройках. но чтобы понять, в настройках чего именно, ты и должен разобраться, кто тебе данные портит. а не смотреть на свою программу, как баран на новые ворота: "ой, символы какиета. а чо там внутри я низнаю...."
 
Нашел в чем трабл,может кому пригодится.
Просто хостеру было в леть заморачиваться с кодировками в MySql (в phpMyAdmin даже отсутствует селект с выбором кодировки) Поэтому в базе вся кириллица хранится спецсимволами. А у меня названия товаров лежали в поле типа varchar (255) (самые длинные названия товаров 40-50 символов),ну а после того как длина всех кириллических названий увеличилась почти в 7 раз,естественно,некоторые просто перестали влезать и обрезались. Пришлось сменить тип на text и снова выкачать дамп.


Но осталась другая проблема. Нужно в тело письма вставлять информацию из базы, а она там в спецсимволах. Пробовал html_entity_decode - не помогает:( А htmlspecialchars_decode не пашет потому что версия php 4.4
 
Просто хостеру было в леть заморачиваться с кодировками в MySql (в phpMyAdmin даже отсутствует селект с выбором кодировки) Поэтому в базе вся кириллица хранится спецсимволами.
бред
 
почему бред? Если я просматриваю таблицу в phpMyAdmin и в ней вся кирилличская инфа лежит в виде спецсимволов?
 
zerkms, если character_set_server = latin1, то кириллица (и любые символы за пределами latin1) хранится именно так.
 
жесть. сколько всего нового можно узнать за одно утро
 
флоппик
ты о чём?

Код:
mysql> show variables like 'character_set_server';
+----------------------+--------+
| Variable_name        | Value  |
+----------------------+--------+
| character_set_server | latin1 |
+----------------------+--------+
1 row in set (0.00 sec)

mysql> insert into `a` (`text`) VALUES ('абв');
Query OK, 1 row affected (0.00 sec)

mysql> select * from `a`;
+----+------+
| id | text |
+----+------+
|  1 | абв  |
+----+------+
1 row in set (0.00 sec)
 
Сверху