Я выполняю простой вызов ajax с библиотекой Javascript YahooUI следующим образом:
YAHOO.util.Connect.setForm('myform');
YAHOO.util.Connect.asyncRequest('POST', url, ...);
Ниже приведены настройки в моем приложении: версия Tomcat: 6.0.18
разъем сервера Tomcat: URIEncoding = "UTF-8" страница веб-приложения:
Также указано в документах библиотеки соединителя YahooUI:
setForm закодирует имя и значение каждого поля формы HTML с использованием encodeURIComponent.В результате получается строка из кодированных UTF-8 пар имя-значение.ПРИМЕЧАНИЕ. Установка HTTP-заголовка «Content-Type» с другим значением кодировки не изменит кодировку сериализованных данных. Кодирование сериализованных данных.
Я вижу, что французские символы, которыеотправляются как параметры закодированы (в ie7 с помощью iehttpheader tool):
name=%C3%88%C3%A0%C3%B4
testParam=%C3%B4%C3%B4
Для данных: name: andàô и testParam: ôô
Но на стороне сервера я вижу значенияследующим образом: • 1019 *
Даже если я преобразовываю строку в байты, а затем создаю новую строку с набором символов, определенным следующим образом: String val = new String (oo.getBytes ("UTF-8"));Я не могу получить точные данные, как ожидалось.
Примечание. Я ссылался на приведенный ниже вопрос, но не смог решить эту проблему: Как заставить UTF-8 работать в веб-приложениях на Java? Пожалуйста, руководство.
ОБНОВЛЕНИЕ: Вызов функции декодирования UTF-8, как указано на сайте W3.org http://www.w3.org/International/O-URL-code.html, дает мне ожидаемые результаты.Я ожидаю, что Tomcat расшифрует это?