У меня есть веб-приложение (UTF-8), в котором следующий может использоваться для отправки к стороне сервера
áéíóú
àèìòù
ÀÈÌÒÙ
ÁÉÍÓÚ
Хорошо. Я использую что-то как следующим образом для отправки данных
// Notice $("#myForm").serialize()
$.get("/path?", $("#myForm").serialize(), function(response) {
});
Когда я вижу свой recordSet, я добираюсь (кодирование набора символов базы данных является UTF-8),
áéÃóú
à èìòù
ÃÉÃÓÚ
ÀÈÌÒÙ
Даже когда с помощью $ .post, я получаю тот же набор результатов
После наблюдения сериализируют () метод в JQuery в книге Действия:
Создает правильно отформатированную и закодированную строку запроса из всех успешных элементов формы в обернутом наборе
Но, как показано выше, это, кажется, не хорошо работает. Таким образом вместо сериализируют () метод, я использую
var objectArray = $("#myForm").serializeArray();
var queryString = "";
for(var i = 0; i < objectArray.length; i++) {
queryString += "&" + objectArray[i]["name"] + "=" + objectArray[i]["value"];
}
$.get("/path?" + queryString, null, function(response) {
});
Теперь я вхожу в базу данных
áéíóú
àèìòù
ÀÈÌÒÙ
ÁÉÍÓÚ
Таким образом, я пропускаю что-то, когда использование сериализирует () метод? Почему сериализируют (), метод не работает как ожидалось?
jQuery.get
, как и все функции jQuery ajax использовать кодирование компонент
для данных.
При отправке данных через GET, XHR автоматически заботится о передаче кодировки URL.
Вы можете просмотреть документацию по кодировке
, чтобы увидеть, какой тип кодировки подходит для данных, которые вы отправляете
Вам следует добавить следующий метатег в заголовок инициирующей и принимающей страницы:
<meta http-equiv="Content-type" content="text/html; charset=utf-8" />
По умолчанию эта страница будет отображать содержимое в utf-8. Если это само по себе не работает, вы можете использовать encodeURIComponent()
в дополнение к кодированию символов при отправке. Если кодировка не декодируется автоматически, запустите функцию decodeURIComponent()
.