JQuery AJAX ответ в простом ASCII - PullRequest
0 голосов
/ 14 июня 2011

Я отправляю пару китайских иероглифов на свой сервер:

忠孝

веб-сервер затем переводит их в пиньинь:

Zhōngxiào

Я знаю, что это работает, потому что я получил это, непосредственно ударив по своему обработчику AJAX.Итак, сервер все правильно кодирует.Однако когда я получаю этот ответ через jQuery, я получаю:

Zhōngxiào

Мой код:

$.ajax({  
    type: "POST", url: 'procChineseTrans', data: 'toTrans='+text,contentType: "application/x-www-form-urlencoded; charset=UTF-8",
    complete: function(data){
        //alert(data.responseText);
        $('#street_address').val(data.responseText);
}});

Я также установил:

header('Content-Type:text/html; charset=UTF-8');

и

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

Есть ли причина, по которой мой ответ находится в простом ASCII?

Редактировать:

Проверка заголовка моего ответа, он говорит, что этонаходится в UTF-8.Но он все еще отображает ASCII

Ответы [ 2 ]

1 голос
/ 22 июня 2011

Вынудил его в html (), который отформатировал его.

1 голос
/ 14 июня 2011

Ага ... Я вижу, в чем твоя проблема.Заголовок text/html, который вы отправляете обратно, заставляет jquery анализировать responseText как HTML.Если вы не укажете опцию dataType, jquery лучше всего подсчитает, с каким типом данных вы играете, основываясь на заголовках ответов.

Попробуйте добавить dataType : text к опциям в вашем $.ajax звонок.Если это сработает, подумайте о настройке заголовка ответа Content-type.

Для дальнейшего чтения поищите «dataType» на странице справочника jquery: http://api.jquery.com/jQuery.ajax/

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...