Кодировка и отправка данных на Ajax - приходят в БД каракули

NewFelix
На сайте с 02.07.2008
Offline
39
1361

Делаю скрипт редактирования комментариев на станице через Ajax и при передаче данных серверу через GET в БД уже попадает кириллица как коракули. Страницы и все скрипты в кодировке windows-1251 - указана как в мета на страницах, которые смотрит пользователь:

<meta http-equiv="Content-Type" content="text/html; charset=windows-1251" />

там и в скриптах как заголовок:

header('Content-Type: text/html; charset=windows-1251');

Сама БД так же в кириллице.

Опыта мало по разработке подобных скриптов, так что хотел бы спросить у вас, как это победить и вообще как это лучше всё делать? быть может, стоит вообще менять кодировку на UTF-8? :gm:

Недорогой дизайн, вёрстка и сопровождение сайтов (http://andreymaksimov.ru/) | Бложек (http://www.woolfs.ru/blog/felix/) и twitter (http://twitter.com/newfelix)
[Удален]
#1

NewFelix, лучше все в ютф8, а так, у вас может быть не указана кодировка работы с бд. сразу после

mysql_connect вставвьте mysql_query("SET NAMES cp1251");

Александр Смирнов
На сайте с 30.08.2007
Offline
102
#2

NewFelix, в скрипте нужно переконвертировать кодировку. Она все равно идет в utf-8.

$_POST['param'] = iconv("utf-8", "windows-1251", $_POST['param']); // из ютф в ср

Разработаю веб-сервисы на Yii2 фреймворке от 150 тыс. руб. в мес. Обучу программированию на Yii2
NewFelix
На сайте с 02.07.2008
Offline
39
#3

bearman, спасибо за подсказку.

Уже подсказали как это можно победить, вот:

http://habrahabr.ru/blogs/webdev/17640/

попробовал так переводить данные и заносить в БД, вроде бы начали вылезать как и положено. Скажите, это лучший способ, нет подводных камней? И вообще, как так получается, что мы отдаём данные, храним и просто отображем именно в одной кодировке, а заносим в БД в другой? Почему нет проблем из-за этого?

Зарание спасибо.

NewFelix добавил 16.01.2010 в 12:00

NewFelix:
bearman, спасибо за подсказку.

Уже подсказали как это можно победить, вот:
http://habrahabr.ru/blogs/webdev/17640/

попробовал так переводить данные и заносить в БД, вроде бы начали вылезать как и положено. Скажите, это лучший способ, нет подводных камней? И вообще, как так получается, что мы отдаём данные, храним и просто отображем именно в одной кодировке, а заносим в БД в другой? Почему нет проблем из-за этого?

Зарание спасибо.

_AXE_, да Вы правы - отлично заработало. Спасибо большое.

[Удален]
#4
NewFelix:
http://habrahabr.ru/blogs/webdev/17640/

пафосная статейка, столько воды ... :)

Y
На сайте с 22.02.2008
Offline
96
#5

NewFelix, переходите на utf-8 и таких проблем больше никогда не возникнет

---coming soon---
N
На сайте с 06.05.2007
Offline
419
#6

А как же тогда серьезные скрипты работают с аяксом и в windows-1251 без глюков?

Вообще заметил, что мнение "переходить везде на utf8" аргументированно продвигается в основном не осилившими аякс.

не аргументированно - теми, кто за ними повторяет.

и что особенно занятно, http://habrahabr.ru/blogs/webdev/17640/#comment_352213. т.е. в 2007 хабр сам был в windows-1251 ?

Кнопка вызова админа ()

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий