Tenho uma página de pesquisa, com um campo para digitar a string que o usuário quer procurar.
Dados:
Cabeçalhos:
<%@ page language="java" pageEncoding="ISO-8859-1" contentType="text/html;charset=ISO-8859-1"%>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">, e é o primeiro item de <head>
<form method="POST" action="#" accept-charset="ISO-8859-1">
O código-fonte está em ISO-8859-1, o projeto está compilado (do zero, apagando os arquivos) em ISO-8859-1, e o Firefox 3.5 reporta a página como encoding ISO-8859-1. Tudo que consigo imaginar está nesse encoding.
Porém, se eu digito álcool, eu recebo no request um busca=%C3%A1lcool, e ele imprime áLcool.
C3A1 é o hexadecimal em UTF-8 para o caracter á. C3 e A1 em ISO-8859-1 são os caracteres à e ¡(exclamação ao contrário) respectivamente.
Testo usando o Windows Vista, e o resultado é o mesmo tanto no Firefox quanto no IE8.
A pergunta é, por que ainda estou recebendo UTF-8 do cliente, quando aponto tudo para um outro encoding? Poderia tratar isso na servlet, forçando o valor obtido para UTF-8, mas o que me dirá que o cliente mandará nesse formato?