Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 14.02.2014, 20:31
Новичок на форуме
Отправить личное сообщение для tilperion Посмотреть профиль Найти все сообщения от tilperion
 
Регистрация: 07.02.2014
Сообщений: 4

Проблема с кодировкой
Добрый вечер. Собственно проблема
С помощью $.ajax посылаю запрос на сервер и получаю данные в кодировке CP-866, но потом когда хочу их вставить в страницу, то они выводятся кракозяблами, кодировка файла, куда хочу данные вставить - ANSI.

Кто-то может подсказать в чем проблема, может при передаче данных через AJAX кодировка меняется ?
Ответить с цитированием
  #2 (permalink)  
Старый 14.02.2014, 21:58
Аватар для danik.js
Профессор
Отправить личное сообщение для danik.js Посмотреть профиль Найти все сообщения от danik.js
 
Регистрация: 11.09.2010
Сообщений: 8,804

   UTF-8 юзай!
         @
проблем не знай!

__________________
В личку только с интересными предложениями
Ответить с цитированием
  #3 (permalink)  
Старый 14.02.2014, 22:01
Новичок на форуме
Отправить личное сообщение для tilperion Посмотреть профиль Найти все сообщения от tilperion
 
Регистрация: 07.02.2014
Сообщений: 4

Сообщение от danik.js Посмотреть сообщение
   UTF-8 юзай!
         @
проблем не знай!

Если бы была только возможность А так ....
Ответить с цитированием
  #4 (permalink)  
Старый 14.02.2014, 22:04
Аватар для danik.js
Профессор
Отправить личное сообщение для danik.js Посмотреть профиль Найти все сообщения от danik.js
 
Регистрация: 11.09.2010
Сообщений: 8,804

Сервер правильную кодировку сообщает (в ответ на аякс-запрос) в заголовке Content-Type?

Кодировка самой страницы роли не играет. В JS один хер все строки в UTF8.
__________________
В личку только с интересными предложениями
Ответить с цитированием
  #5 (permalink)  
Старый 14.02.2014, 22:44
Новичок на форуме
Отправить личное сообщение для tilperion Посмотреть профиль Найти все сообщения от tilperion
 
Регистрация: 07.02.2014
Сообщений: 4

Сообщение от danik.js Посмотреть сообщение
Сервер правильную кодировку сообщает (в ответ на аякс-запрос) в заголовке Content-Type?

Кодировка самой страницы роли не играет. В JS один хер все строки в UTF8.
Сервер верную код кодировку сообщает.
Я правильно понял, что ответ на ajax запрос, в js файлe уже будет в UTF-8 кодировке ?
Если ли какие -то методы преобразование кодировок в javascript на подобии php iconv или mb_convert_encoding ?
Ответить с цитированием
  #6 (permalink)  
Старый 14.02.2014, 22:50
без статуса
Отправить личное сообщение для Deff Посмотреть профиль Найти все сообщения от Deff
 
Регистрация: 25.05.2012
Сообщений: 8,219

tilperion,
Ссылку на ресурс дайте глянуть
========================


http://qps.ru/h4fSr А без извратов нужно:

Для GET запросов

Цитата:
Всё, что надо сделать, чтобы теперь работать
в PHP в
нормальной кодировке использовать iconv:

$f = iconv('UTF-8', 'windows-1251', $_GET['f']);
Для Post запросов
Цитата:
А для того, чтобы сервер отдавал яваскрипту в правильной кодировке (т.е. в такой же кодировке, в которой отдаются все xhtml страницы) просто в начале вашего ajax.php пропишите заголовок:

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

И всё будет ок.

Последний раз редактировалось Deff, 15.02.2014 в 00:13.
Ответить с цитированием
  #7 (permalink)  
Старый 14.02.2014, 23:07
Аватар для Дзен-трансгуманист
√₋̅₁̅
Отправить личное сообщение для Дзен-трансгуманист Посмотреть профиль Найти все сообщения от Дзен-трансгуманист
 
Регистрация: 18.06.2012
Сообщений: 385

Сообщение от tilperion
Если ли какие -то методы преобразование кодировок в javascript на подобии php iconv или mb_convert_encoding ?
Прежде чем шаманить на клиенте, нужно получить бинарное представление данных.
Sending and Receiving Binary Data
А потом хоть рары распаковуйте.
__________________

Гейзенберг, возможно, читал этот тред.
Ответить с цитированием
  #8 (permalink)  
Старый 15.02.2014, 08:17
Аватар для danik.js
Профессор
Отправить личное сообщение для danik.js Посмотреть профиль Найти все сообщения от danik.js
 
Регистрация: 11.09.2010
Сообщений: 8,804

Короче, поэкспериментировал. Значит кодировка записывается как charset=cp866.
Во-первых, хром нивкакую эту кодировку не хочет отображать корректно. То есть выбор такой стремной кодировки - это уже фэйл.
Во-вторых, если сервер не выставил правильно кодировку - то это еще добавляет проблем.
Сервер должен отдать такой заголовок:
Content-Type: text/plain;charset=cp866
Вместо text/plain может быть любой другой тип.
Если сервер не отдает кодировку, или отдает неверно - то остается использовать request.overrideMimeType(тут_правильны й_content_type), но такой функции нет в IE.

Короче гемор обеспечен. То есть если нужен хром и IE, то тут только вариант, озвученный Дзен-трансгуманист'ом. Ну или найти админа сервера и настучать ему по голове.
__________________
В личку только с интересными предложениями
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Проблема с кодировкой Alexxiss Серверные языки и технологии 4 28.03.2013 17:54
Проблема с кодировкой, помогите советом ARBYZ Серверные языки и технологии 13 08.03.2011 19:24
проблема с кодировкой bushstas AJAX и COMET 7 03.10.2009 00:48
Проблема с кодировкой в скрипте автозаполнения Maratka AJAX и COMET 12 24.01.2009 12:31
Проблема с кодировкой magistr_bender Общие вопросы Javascript 2 07.09.2008 20:04