Ajax. Кодировка.
Всем привет!
Отсылаю на сервер данные в нормальном виде - смотрю переменные через console.log(до отправки на сервер). Например переменная printer - выводится как Термопринтер Custom MNL. После отправки данных - на стороне сервера в скрипте обрабатывающем данные пишу echo $_POST['printer'], на стороне клиента обрабатываю alert(data) - выводится как "РљРѕРјРїР»РµРєС‚Р°С†РёС ". В браузере на автоопределение выставляется - windows-1251. Если поставить utf-8, то принтер отображается нормально - но соответственно весь остальной контент сайта кракозябрами. Объясните что за путаница с кодировкой? |
Ну а чего вы хотели? Тут urf8, там windows-1251. Пора уже давно использовать uft8, и не будет таких проблем.
Приводите все файлы к одной кодировке. Посылайте заголовки от сервера. И все будет хорошо. |
Да свои сайты у меня на utf-8, я знаю насколько это облегчает жизнь.
Но этот сайт не мой, дали на переделку логики только. Весь сайт на windows-1251. Сайт большой. Не хотел бы всё сейчас переводить на utf-8, ведь как я понимаю нужно вручную каждый документ на сервере изменять на utf-8. Возможно ли именно переменную printer принудительно перевести в windows-1251? |
1. iconv() в php
2. создать отдельную папку, положить туда скрипты и кинуть в нее htaccess со строкой, меняющей кодировку - всегда так делаю. |
Ну заголовок попробуйте посылать с сервера. Если у вас апач, то можете в htaccess прописать
AddDefaultCharset windows-1251 или посылать заголовок. Content-Type: text/html;charset=windows-1251 |
Заголовок почему-то не помог(в скрипте на стороне сервера),
помогло json_encode - на серверной стороне. |
Часовой пояс GMT +3, время: 17:02. |