У меня есть приложение на основе Tomcat, которое должно отправить форму, способную обрабатывать символы utf-8.При отправке через ajax данные возвращаются корректно из getParameter () в utf-8.При отправке через форму сообщения, данные возвращаются из getParameter () в iso-8859-1.
Я использовал fiddler и определил только разницу в запросах: charset = utf-8 добавляется в конец Контента-Тип заголовка в вызове ajax (как и ожидалось, поскольку я отправляю тип содержимого явно).
ContentType из ajax: "application / x-www-form-urlencoded; charset = utf-8"
ContentType из формы: "application / x-www-form-urlencoded"
У меня есть следующие настройки:
ajax post (правильно выводит символы):
$.ajax( {
type : "POST",
url : "blah",
async : false,
contentType: "application/x-www-form-urlencoded; charset=utf-8",
data : data,
success : function(data) {
}
});
form post (выводит символы в iso)
<form id="leadform" enctype="application/x-www-form-urlencoded; charset=utf-8" method="post" accept-charset="utf-8" action="{//app/path}">
XML-объявление:
<?xml version="1.0" encoding="utf-8"?>
Тип документа:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
метатег:
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
Параметры jvm:
-Dfile.encoding=UTF-8
У меня также естьпопытался использовать request.setCharacterEncoding ("UTF-8"); , но кажется, что tomcat просто игнорирует его.Я не использую клапан RequestDumper.
Из того, что я прочитал, кодировка данных POST в основном зависит от кодировки страницы, в которой находится форма.Насколько я могу судить, моя страница правильно закодирована в utf-8.
Пример JSP с этой страницы работает правильно.Он просто использует setCharacterEncoding ("UTF-8"); и выводит данные, которые вы публикуете.http://wiki.apache.org/tomcat/FAQ/CharacterEncoding
Итак, подведем итог: запрос на отправку не отправляет кодировку как utf-8, несмотря на то, что страница находится в utf-8, параметры формы указывают utf-8, объявление xml или что-то еще,Я потратил большую часть трех дней на это, и у меня заканчиваются идеи.Кто-нибудь может мне помочь?