Pergunta

Ao escrever a string "¿" usando

System.out.println(new String("¿".getBytes("UTF-8")));

ÿ é escrito em vez de apenas ¿.

POR QUE? E como é que vamos corrigir isso?

Foi útil?

Solução

Você não tem que usar UTF-16 para resolver este:

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

funciona muito bem. Enquanto a codificação dada ao método getBytes() é o mesmo que a codificação você passar para o construtor String, você deve estar bem!

Outras dicas

Você precisa especificar o Charset no construtor String (veja o documentação da API ).

Tente:

System.out.println(new String("¿".getBytes("UTF-8"), "UTF-8"));

Você precisa especificar a codificação tanto ao converter a string para bytes e ao converter os bytes de volta para uma string.

Parece que o console do sistema não está em UTF-8

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top