sábado, 3 de outubro de 2015

UTF-8 em Strings Java

Nesse post gostaria de deixar a dica de ao usar o método getBytes de String ou new String(byte[]) utilizem passando o charset UTF-8:

"qualquerString".getBytes("UTF-8");
new String("qualquerString".getBytes("UTF-8"), "UTF-8");

Enquanto estiver trabalhando no mesmo sistema operacional não terá problema, mas pode gerar comportamentos estranhos quando em sistemas operacionais diferentes.

Foi o meu caso que estava usando uma criptografia para senhas e ao mudar o server de Linux para Windows começou a retornar como senha inválida, como a aplicação só tinha mudado de servidor enquanto que o banco de dados não teve alteração estava claro que estava pegando o charset da máquina, não levou muito tempo mas já gerou um retrabalho.

Então fica dica, usem sempre UTF-8.