Evitando erros de Encoding no Java
Por Danilo Shimada | 14/06/2012 | TecnologiaNeste artigo vou ensinar uma forma simples de corrigir erros, causados pelo uso de acentos e caracteres especiais, com o uso da tabela Unicode.
As vezes, ao utilizar acentos e caracteres especiais, erros podem ocorrer, isto acontece porque possivelmente o que foi utilizado não consta no padrão americano de escrita(ASCII), onde não constam acentos e determinados caracteres. Para resolver isso vamos utilizar uma das tabelas ASCII Estendida(Unicode), que possuem caracteres adicionais além dos já existentes na ASCII, que é chamada de Latin-1 Supplement, nela constam letras já acentuadas e diversos caracteres que são imprimíveis e também funções especiais de processamento(quadrados pontilhados na tabela) que não são imprimíveis.
Tabela extraída do site http://www.unicode.org/
Exemplo:
Quando queremos imprimir os dizeres “Atenção! Código Inválido!”, note que foram utilizados alguns acentos e o cedilha, ao visualizar a impressão ou mesmo antes vemos que aparecem símbolos estranhos no lugar dos caracteres.
public class Unicode
{
public static void main(String args[])
{
System.out.println(“Atenção! Código Inválido!);
}
}
Impressão: Aten[][]o! C[]digo Inv[]lido!
Agora vamos utilizar os códigos da tabela acima para resolver o problema. Em primeiro lugar devemos achar o caractere desejado e identificar o código logo abaixo dele, também podemos identificá-lo por “coluna-linha” de onde cada um está localizado, depois devemos substituir os caracteres problemáticos com o código certo de acordo com a tabela, mas antes deles devemos utilizar o “\u”, por exemplo, para o caracter “Ú”(maiúsculo com acento agudo) seria inserido o “\u00da”. O código acima com as devidas correções segue logo abaixo.
public class Unicode
{
public static void main(String args[])
{
System.out.println("Aten\u00e7\u00e3o! C\u00f3digo Inv\u00e1lido!");
}
}
Impressão: Atenção! Código Inválido!
OBS: Neste artigo foi mostrado uma solução baseada na linguagem Java, entretanto, podemos utilizá-la em outras linguagens com suas devidas adaptações. Também é importante salientar que existem outras formas de tratar este mesmo problema, abordado neste artigo, que talvez possam se adequar melhor a certos casos.
Para ter mais informações sobre todas as tabelas Unicode acesse: http://www.unicode.org/