Получение серверной кодировки с использованием Java - PullRequest
2 голосов
/ 05 августа 2011

Можно ли программно получить схему кодирования, используемую, скажем, Tomcat, для декодирования параметра GET?

Я знаю, что вы можете заставить Tomcat использовать определенные кодировки, но это когда я не могуконтролировать настройки Tomcat.Я думаю о том, чтобы получить правильную кодировку, анализируя строку запроса самостоятельно или пытаясь перекодировать значение, используя то, что сделал Tomcat, чтобы декодировать его, а затем декодировать его с помощью UTF-8, чтобы получить правильную строку.

Ответы [ 2 ]

1 голос
/ 06 августа 2011

С http://www.w3schools.com/tags/ref_urlencode.asp, кодировка URL ASCII, и правила для специальных символов могут быть легко изменены. Параметры в GET кодируются в URL.

Если вы говорите о значении в самом GET, тогда ваш вопрос на самом деле не имеет смысла (или я вас неправильно понимаю), поскольку вы получите строку в своем Java-сервлете. Параметр уже будет декодирован. Вам не нужно беспокоиться о кодировке.

0 голосов
/ 06 августа 2011

Вы всегда можете попробовать выполнить getCharacterEncoding. Хотя есть одна гарантия. Если атрибут * URIEncoding не был изменен в server.xml, вы всегда можете принять ISO-8859-1. Если вы получите строку с getParameter, извлеките необработанные байты и создайте новую строку с кодировкой UTF-8. URL всегда экранируются как текст UTF-8.

...