Problemas com Charset

Gostaria de saber se há alguma maneira de utilizar o charset Cp437… já que até aonde eu sei, não vem junto na instalação do java…

Na instalação completa do J2SDK (ou JDK) deve vir também um arquivo charsets.jar, que deve ter algo como 5.600.000 bytes e fica instalado em jre/lib.
Esse arquivo contém o CP 437, entre outros.

Sim, o arquivo realmente está ali, mas então pq eu não consigo usar o charset? Ocorre uma UnsupportedEncodingException quando ele tenta pegar o array de bytes de uma string, especificando o charset como Cp437

Então … se você está usando o Windows, por exemplo, há um monte de lugares onde a Sun instala as coisas:

em c:\arquivos de programas\java\j2re1.4.2_07

em c:\j2sdk1.4.2_07\jre

etc.

sendo que ele deixa o último java.exe que foi instalado em \windows\system32. Pode ser que esteja acontecendo algum problema de PATH (nem é de CLASSPATH). Onde é que você está com o charsets.jar?

class TestCharset {
    public static void main (String[] args) throws Exception {
        byte[] bytes = "Conceição".getBytes ("CP437");
    }
}

Teste este programa com

c:\j2sdk1.4.2_07\bin\java -cp . TestCharSet

“\Arquivos de Programas\Java\j2re1.4.2_07\bin\java” -cp . TestCharSet

etc.

Ele realmente dá esta mensagem quando se elimina charsets.jar:

Exception in thread “main” java.io.UnsupportedEncodingException: Cp437
at sun.io.Converters.getConverterClass(Unknown Source)
at sun.io.Converters.newConverter(Unknown Source)
at sun.io.CharToByteConverter.getConverter(Unknown Source)
at java.lang.StringCoding.encode(Unknown Source)
at java.lang.String.getBytes(Unknown Source)
at TestCharset.main(TestCharset.java:3)

Respondi no canto errado. Malz :oops: