Китайские проблемы Ajax разделены на две категории:
1) Параметры в пути отправки находятся на китайском языке, а значения параметров, полученные в разделе сервера, искажены.
Например:
var url = "a.jsp? name = xiao li";
xmlhttp.open ("post", url, true);
Решение:
Используйте методы Escape () или Encodeuri (), предоставленные JavaScript, например:
Клиент:
var url = "a.jsp? name = xiao li";
url = encodeuri (url);
url = encodeuri (url);
/********************************************/
Некоторые люди также пишут var url = "a.jsp? Name = rescep (" xiao li ")";
Функция аналогична методу Encodeuri.
/********************************************/
xmlhttp.setrequestheader ("Контроль кэша", "без качела");
xmlhttp.setrequestheader ("content-type", "Application/xwww-form-urlencoded");
xmlhttp.setRequestHeader ("contentType", "text/html; charset = uft-8") // Укажите формат кодирования отправленных данных
xmlhttp.open ("post", url, true);
Серверная часть:
Имя строки = request.getParameter("имя");
name = java.net.urldecoder.decode ("name", "utf-8");
2) Значение ResponseText или RepactXML содержит китайские символы и искажается. , тогда значение, полученное ответом или ответом, может быть искажено.
Решение: укажите формат отправки данных на сервере:
В файле JSP:
response.setContentType ("text/text; charset = utf-8"); // Что возвращается, является текстовым файлом TXT или
response.setContentType ("text/xml; charset = utf-8"); // возвращаемый файл XML
Резюме: 1) По умолчанию формат AJAX-это UTF-8, используя метод ascover () или encodeuri (), предоставленный JavaScript. «UTF -8») Метод для декодирования.
2) Кодирование символов по умолчанию данных, возвращаемых XTMLHTTP, является UTF-8, поэтому, когда сервер хочет отправлять данные клиенту, он также должен использовать кодирование UTF-8. Вы можете попытаться преобразовать файлы JSP, HTM, Java сохраняются в формате кодирования UTF-8.
Короче говоря: просто используйте кодирование UTF-8 для взаимодействия с передними и обратными данными.
Эта статья поступает из блога CSDN.