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

Comentários

Postagens mais visitadas