Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > PHP: Общие вопросы > Проблемы с кодировкой


Автор: tailer_derden 28.3.2009, 16:05
Добрый день!
Имею установленный скрипт. В нем данные из поля при нажатии на кнопку "Сохранить" заносятся в соответствующую ячейку таблицы базы данных MySql. Собственно вопрос: при внесении каких либо данных они сохраняются в базу в непонятной кодировке, например слово красный там отображается как Крас&#.
Причем если изменить в самой базе это слово то оно отображается нармально.
Скрипт забугровый.
Помогите кто что знает.
Пример: http://primer.tailerstyle.ru/

Автор: enof 28.3.2009, 16:17
tailer_derden,  проблемы не с кодировкой, а похоже, что с руками у разработчиков.
Перед занесением в базу, данные прогоняются через htmlentities(), скорее всего.
Либо заносите как есть( что правильнее), либо перед выводом используйте htmlentities_decode()

Автор: IZ@TOP 28.3.2009, 16:18
А пример кода, где происходит сохранение не могли бы привести? Мы тут особыми телепатическими способностями не обладаем.

Цитата(enof @  28.3.2009,  17:17 Найти цитируемый пост)
Перед занесением в базу, данные прогоняются через htmlentities(), скорее всего.

Согласен, сразу и не подумал. Привык уже к работе с utf-8, там таких проблем с этой функцией нет.

Цитата(enof @  28.3.2009,  17:17 Найти цитируемый пост)
Либо заносите как есть( что правильнее), либо перед выводом используйте htmlentities_decode()

Думаю, лучше заменить на htmlspecialchars.

Автор: enof 28.3.2009, 16:35
Цитата(enof @  28.3.2009,  16:17 Найти цитируемый пост)
htmlentities_decode()

сорри, html_entity_decode(). 
Цитата(IZ@TOP @  28.3.2009,  16:18 Найти цитируемый пост)
Думаю, лучше заменить на htmlspecialchars. 

ну если использовать htmlentities()  и указывать всегда кодировку, то проблем не будет. Ну а так да, лучше не париться и юзать htmlspecialchars().

Автор: tailer_derden 28.3.2009, 19:34
Спасибо, IZ@TOP
Цитата
Думаю, лучше заменить на htmlspecialchars.

Действительно эта функция помогла.
Кстати до этого использовал htmlentities() и принудительно в ней указывал кодировку cp1251 - результата никакого.

Автор: enof 28.3.2009, 19:47
А в чем проблема была?

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)