Задать вопрос

Почему Ajax GET запрос, содержащий кириллицу, возвращает крокозябры?

Он возвращает мне крокозябры кухни, после php функции rawurlencode %D0%BA%D1%83%D1%85%D0%BD%D0%B8. Кодировка utf8 без бум в htacces по дефолту тоже прописано и на странице. Возможно ли как то конвентировать это назад в кириллицу? Данные берутся из input методом jquery вот код:

<div><input id="p_38" class="checkbox pourpo" type="radio" name="parameters" value="Для ванной"><label for="p_38">Для ванной</label></div>


$('.pourpo').click(function(){
    var template = $("#usageList").html();
    var inppourpo = $(this).val();

      $.ajax({
        type: 'get',
        url: '/filter/pourpose/'+inppourpo,
        dataType: 'json',
        contentType: 'application/json',
        success: function(data) {
            $(".prodlist").html(_.template(template,{inppourpo:inppourpo }));
        }
      });

  });
  • Вопрос задан
  • 4393 просмотра
Подписаться 3 Оценить Комментировать
Пригласить эксперта
Ответы на вопрос 7
@romansamko
Такое часто бывает, когда на веб-сервере (apache, nginx, etc) не указана кодировка
Ответ написан
akashtrih
@akashtrih
Попробуй параметр url формировать так:
url: '/filter/pourpose/' + encodeURIComponent( inppourpo ),

А на стороне сервера, чтобы получить исходную строку, используй urldecode().

Кстати, параметр contentType сообщает серверу о том, что за данные ему переданы ajax-запросом. В данном случае никакие данных в параметре data на сервер не передаются, указывать contentType смысла не вижу (подробности).
Ответ написан
zenwalker
@zenwalker
0xABADBABE
Ваши крякозябры — попытка прочитать UTF-8 как WINDOWS-1251. Уверены, что кодировка для отображения именно UTF-8?

То, что кодировка задана в .htaccess не значит, что она не может быть переопределена где-то еще. Загляните в отладчик браузера и проверьте наличие нужных заголовков, либо же попробуйте жестко указать кодировку данных перед отдачей.

header("Content-Type: text/html; charset=utf-8");
Ответ написан
Комментировать
JekFdrv
@JekFdrv
webdeveloper
Или в запросе ajax не указана нужная кодировка или при выводе на экран в meta тегах. Когда-то сам долго мучался.
Ответ написан
@raincons
Файл скрипта сохранен в utf-8?
Ответ написан
Комментировать
покажите то, что возвращает AJAX запрос
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы