Esse CV… Não deixe o Marcos com cara de ponto de interrogação.
Bom, para o Marcos Junqueira:
Quando você usa “String.getBytes()”, sem nenhum parâmetro, pode ter alguns problemas porque ele dá resultados diferentes de versão para versão, de sistema operacional para sistema operacional, e de locale (“Regional Settings”, ou linguagem - português, inglês, o que seja - em que o sistema operacional está instalado. Para evitar esses problemas, use um parâmetro que evita essa variabilidade.
Para evitar problemas, use sempre String.getBytes(String), e new String(byte[], String), e se possível, para evitar surpresas desagradáveis, o parâmetro “encoding” = “ISO-8859-1”. É que esse parâmetro é quase igual ao que o Windows usa por padrão, e vai ser fácil você entender o que está acontecendo.
byte[] bytes;
String str = "Alô, Conceição!";
bytes = str.getBytes ("ISO-8859-1");
...
str = new String (bytes, "ISO-8859-1");
...
(não se esqueça de “catch” a exceção “UnsupportedEncodingException”)
P.S. Se você estiver imprimindo a saída no console do MS-DOS (no Windows), use o seguinte comando:
chcp 1252
antes de chamar o seu programa, para poder ver os acentos corretamente.