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

Mikelangelo

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

Подскажите,плз:
Перенес сайт на новый хостинг и начались какие-то непонятки с выводом данных из MySql.
Смотрю источник генерируемого html - в нем все, что выводится из базы, представлено примерно в таком виде "&amp#1090;&amp#1077;&amp#1088;&amp#1084;&amp#1086;&amp#1089;&amp#1090;&amp#1072;".
На экране кириллический текст выводится боле-менее норм, но если идет вывод в ячейки таблицы,а название слишком длинное ,то концовка текста тоже преобразуется в такие спец символы. Ну и если нужно в тело письма вставить инфу из базы - та же самая история,все приходит в таких спец символах.
 

zerkms

TDD infected
Команда форума
mysql сам ничего не преобразует
phpfaq.ru/debug
 

Mikelangelo

Новичок
zerkms
Намек на то,что кириллица в спецсимволы преобразуется уже в коде php? Так там точно ничего не преобразуется. На локальной версии сайта таких проблем нет,да и на старом хостинге не было=> проблема в настройках Mysql или Апача на конкретном сервере,хотелось бы знать в каких. И phpfaq.ru/debug навряд ли мне чем-то поможет.
 

Фанат

oncle terrible
Команда форума
намек на то, что ты сам должен узнать, кто у тебя где что преобразует. и phpfaq.ru/debug - единственное, что тебе поможет. если ты, конечно, умеешь читать и хочешь решить свою проблему.

допустим, проблема в настройках. но чтобы понять, в настройках чего именно, ты и должен разобраться, кто тебе данные портит. а не смотреть на свою программу, как баран на новые ворота: "ой, символы какиета. а чо там внутри я низнаю...."
 

Mikelangelo

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


Но осталась другая проблема. Нужно в тело письма вставлять информацию из базы, а она там в спецсимволах. Пробовал html_entity_decode - не помогает:( А htmlspecialchars_decode не пашет потому что версия php 4.4
 

zerkms

TDD infected
Команда форума
Просто хостеру было в леть заморачиваться с кодировками в MySql (в phpMyAdmin даже отсутствует селект с выбором кодировки) Поэтому в базе вся кириллица хранится спецсимволами.
бред
 

Mikelangelo

Новичок
почему бред? Если я просматриваю таблицу в phpMyAdmin и в ней вся кирилличская инфа лежит в виде спецсимволов?
 

флоппик

promotor fidei
Команда форума
Партнер клуба
zerkms, если character_set_server = latin1, то кириллица (и любые символы за пределами latin1) хранится именно так.
 

Фанат

oncle terrible
Команда форума
жесть. сколько всего нового можно узнать за одно утро
 

zerkms

TDD infected
Команда форума
флоппик
ты о чём?

Код:
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)
 
Сверху