Проблема кодировки IE 8 - PullRequest
1 голос
/ 21 июля 2010

у нас есть приложение wep, при использовании китайских слов в строке запроса GET невозможно получить правильную параметр на стороне сервера, но в данных POST мы можем получить правильный параметр на стороне сервера. Сервер Tomcat. на стороне сервера мы используем кодировку GBK для получения параметров HTTP если я преобразую кодировку параметров в строке запроса из ISO8859-1 в GBK, то это правильно, но проблема в том, что слишком много страниц JSP для изменения. Поэтому я хочу, чтобы в любом случае был настроен IE для отправки строки запроса с использованием GBK, но iso8859- 1. Я пытался снять галочку с опции "отправить URL UTF-8" в IE, у меня не получилось ...

PLZ ПОМОГИТЕ извините за мой плохой английский!

// iPostChange int 0: ISO8859_1,1: NoChange, 2: ISO8859_1-> GBK, 3: GBK-> ISO8859_1,5: GBK

String sFlowNo = DataConvert.toRealString(iPostChange,(String)CurComp.getParameter("FlowNo"));

iPostChange используется для установки преобразования кодировки, по умолчанию 1, что означает не изменять. Предполагается, что FlowNo - это некоторые китайские слова, если FlowNo передается на сервер в url (строка запроса HTTP GET) со стандартным iPostChange, я не могу получить правильную китайскую строку, но если FlowNo передается на сервер в форме (с помощью метода POST), я могу получить правильную китайскую строку.

что IE8 не поддерживает использование китайских символов в URL?

Ответы [ 2 ]

1 голос
/ 21 июля 2010

Лучше не полагаться на кодировку символов в запросах GET, так как некоторые браузеры кодируют их в UTF-8, а другие кодируют их как ISO-8859-1. Кроме того, применяемая кодировка зависит от кодировки страницы, отправившей форму, поэтому одна форма на странице, закодированной в UTF-8, приведет к запросу GET в кодировке UTF-8, аналогичная форма на странице с Кодирование ISO-8859-1 приведет к запросу в кодировке ISO-8859-1.

См. Также Какая правильная кодировка строк запроса на получение HTTP? для более подробного объяснения.

1 голос
/ 21 июля 2010

исправлено.

см .: Tomcat wiki

Tomcat будет использовать ISO-8859-1 в качестве кодировки символов по умолчанию для всего URL, включая строку запроса («ПОЛУЧИТЬ параметры»).Есть два способа указать, как интерпретируются параметры GET:

  1. Установите атрибут URIEncoding для элемента в server.xml на что-то конкретное (например, URIEncoding = "UTF-8").

  2. Установите для атрибута useBodyEncodingForURI элемента в server.xml значение true.Это заставит Соединитель использовать кодировку тела запроса для параметров GET.

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