Caracteres especiais trocados ao inserir no banco de dados – Como tratar encode de String em Java
Ao salvar um texto com caracteres especiais, os mesmos foram trocados por outros caracteres no banco de dados?
Isso acontece devido o enconde de Java ser diferente do enconde do banco dados.
Uma forma muito simples de se tratar este problema é utilizar o construtor da própria classe String
public String(byte[] bytes,
Charset charset)
Exemplo:
String texto = "áéíóúÁÉÍÓÚ";
byte[] array = texto.getBytes();
try {
texto = new String(array, "ISO-8859-1");
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
}
Exceção UnsupportedEncodingException
A exeção é lançada quando o Charset especificado não é suportado.
Segue abaixo a relação de todos os Charset suportados:
- US-ASCII
- ISO-8859-1
- UTF-8
- UTF-16BE
- UTF-16LE
- UTF-16
Ver javadoc da classe Charset http://docs.oracle.com/javase/6/docs/api/java/nio/charset/Charset.html
Comentários
Postar um comentário