Fala galera…
eu tenho um arquivo texto com as informacoes sobre meu banco de dados, user e senha…
qdo criptografei-o, o notepad pediu p/ salva-lo com outro tipo de Encoding…o UNICODE…pois minha criptografia usa caracteres ASCII…
e qdo fui tentar ler o arquivo novamente com esse novo encoding, ele nao consegue pegar as informacoes do arquivo…
sera q o java nao reconhece esse tipo de encoding?? como faze-lo reconhecer??
valew
O Java trabalha no formato Unicode por default, tanto que o tipo primitivo char eh de 16 bits. Qual o problema que vc esta tendo mais especificamente?? os caracteres vem errados? teria como vc colocar algum codigo que vc esta usando ?
Rafael
colocar codigo eh complicado…
mas acontece o seguinte:
no meu arquivo, tenho
Idioma = 1
qdo alterei-o e salvei no formato Unicode, no modo texto nao mudou nada…mas mandei imprimir no console e veio assim:]
i d i o m a = 1
por isso ele nao encontra nada…meu metodo de recuperacao da informacao, passo um parametro…no caso, passo “Idioma”…
ai dah pau…
Baioni, eu espero que vc esteja usando Readers e Writers para escrever e ler dos seus arquivos.
Se vc tem um arquivo conhecidamente no formato Unicode, vc tem que lê-lo assim:
FileInputStream fin = new FileInputStream(arqName);
InputStreamReader reader = new InputStreamReader(fin, Charset.forName("UTF-16"));
Senão, ele vai pensar que é o charset default da sua máquina (no nosso caso, normalmente é iso-8859-1).
[]s
valew pela dica, cara…
mas ao compilar deu erro nesse Charset…o q vem a ser isso??
Esse CharSet é do nio, nem tinha visto.
Acho que tem um parâmetro no construtor do InputStreamReader que aceita direto a String. Use esse. : ))
entao cara…
fiz como vc disse…ai vai o codigo…
FileInputStream fis = new FileInputStream(pstrArquivo);
InputStreamReader reader = new InputStreamReader(fis, "UTF-16");
brArquivo = new BufferedReader(reader);
mas na hora de rodar, dah pau qdo tento recuperar a informacao do arquivo…
qdo executo essa linha: (linha 176)
strLinha = brArquivo.readLine().toLowerCase();
dah esse erro:
sun.io.MalformedInputException: Missing byte-order mark
at sun.io.ByteToCharUnicode.convert(ByteToCharUnicode.java:123)
at java.io.InputStreamReader.convertInto(InputStreamReader.java:137)
at java.io.InputStreamReader.fill(InputStreamReader.java:166)
at java.io.InputStreamReader.read(InputStreamReader.java:249)
at java.io.BufferedReader.fill(BufferedReader.java:139)
at java.io.BufferedReader.readLine(BufferedReader.java:299)
at java.io.BufferedReader.readLine(BufferedReader.java:362)
at scp.util.clsFerramentas.getParametro(clsFerramentas.java:176)
qual o problema??
valew.