Como descobrir o real encoding de um arquivo em java
Jonas Abreu em 31/03/2010Um dos grandes problemas que enfrentamos no meu atual projeto na AdaptWorks foi descobrir qual o real encoding de páginas html arbitrárias.
Existem diversas causas para esse problema:
- Muitas pessoas não fazem idéia de como trabalhar com encodings de arquivos
- Nem sempre o encoding na resposta do servidor é o encoding do arquivo
- A tag meta com o charset também pode não bater com o encoding do arquivo
- Não existe uma forma simples de detectar qual o encoding do arquivo
Depois de muito procurar, encontramos um projeto que usa diversas heurísticas para detectar o encoding correto do arquivo.
O ICU (International Components for Unicode) faz todo o trabalho pesado para a detecção do encoding, com mais confiabilidade do que os dados enviados pelo servidor ou especificados pelo criador da página.
Entre os vários usuários do ICU, estão Google, IBM e Apple.
Ele é meio chato de usar, mas vale a pena.