JQuery AJAX Вызов с Unicode. Правильный способ размещения данных Unicode? - PullRequest
4 голосов
/ 01 февраля 2010

У меня есть страница, которая помещает AJAX на сервер, и часто данные будут Unicode.

В большинстве случаев это работает, но иногда кажется, что он ломается, и я нигде не могу найти ответ. Я использовал encodeURI, но я не уверен, что это правильно.

Вот пример кода:

    $.ajax({
       type: "POST",
       url: "SomePage.php",
       data: "val1=" + encodeURI(unicodeVariable) + "&presentation=" + encodeURI(someUnicodeVariable),
       success: function(msg){

       }
     });                    

Я предполагаю, что иногда случается, что персонаж Unicode включает в себя и это ломает его.

Как правильно кодировать Unicode для вызова AJAX с помощью JQuery?

Спасибо.

1 Ответ

6 голосов
/ 01 февраля 2010

Вот хорошая ссылка , которая сравнивает все методы кодирования.

Наконец, encodeURIComponent () метод следует использовать в большинстве случаев при кодировании одного компонента URI. Этот метод будет кодировать определенные символы, которые обычно признаны специальными символами для URI так что многие компоненты могут быть включен. Обратите внимание, что этот метод делает не кодировать символ ', так как это допустимый символ в URI.

encodeURIComponent () также кодирует символ «&»:

encodeURI("&"); // "&"
encodeURIComponent("&"); // "%26"

Или вы можете просто преобразовать эту строку:

data: "val1=" + encodeURI(unicodeVariable) + "&presentation=" + encodeURI(someUnicodeVariable),

в объект:

data: {
    val1: unicodeVariable,
    presentation: someUnicodeVariable
}

И jQuery автоматически проверит, что данные закодированы, используя encodeURIComponent ().

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