Когда веб-сервер получает POST формы, его разбор по парам парам-значениям довольно прост. Однако, если значения содержат неанглийские символы, которые были закодированы браузером, он должен знать набор символов, используемый для их декодирования.
Я изучил запросы, отправленные двумя сообщениями. Один был сделан со страницы с использованием UTF-8, а другой со страницы с использованием Windows-1255. Один и тот же текст был закодирован по-разному. AFAIK, заголовок Content-type может содержать кодировку после application/x-www-form-urlencoded
, но это не так (с помощью Firefox).
В сервлете, когда вы используете request.getParameter()
, вы должны получить декодированное значение. Как контейнер сервлетов делает это? Всегда ли делается ставка на UTF-8, используется какая-то эвристика или есть какой-то детерминированный способ, которого мне не хватает?