Como salvar uma arquivo texto UNICODE BIG ENDIAN

3 respostas
E

Olá galera,

Será que alguem poderia me dizer como eu salvo um arquivo texto, porém não em ANSI e sim em UNICODE BIG ENDIAN???
Se possível qual a linha de código que faz isso?

Estou fazendo da seguinte forma, mais ele salva como ANSI dessa forma:

InputStream is = System.in;
	InputStreamReader isr = new InputStreamReader(is);
	BufferedReader br = new BufferedReader(isr);

	OutputStream os = new FileOutputStream("Saida.txt");
	OutputStreamWriter osw = new OutputStreamWriter(os);
	BufferedWriter bw = new BufferedWriter(osw);
	
	String s = br.readLine();

	while (s != null) {
		s = s.toUpperCase();
		System.out.println(s);
		
		bw.write(s);
		bw.newLine();

	    s = br.readLine();
	}

	br.close();
	bw.close();

Bom se alguém puder ajudar fico grato!
Valeu galera, Abraços!

3 Respostas

E

troque

OutputStreamWriter osw = new OutputStreamWriter(os);

por

OutputStreamWriter osw = new OutputStreamWriter(os, "UTF-16BE");

(se não me engano). Não se esqueça de pôr os try/catchs adequados. Rode e me avise se funcionou.

E

Cara não deu certo não…

Eu to vendo porque quando eu abro o arquivo pelo notepad++ ele mostra q ainda está como ANSI.

Abraços!!!

E

Talvez a auto-detecção do Notepad++ tenha enganado você. De qualquer maneira, você pode forçar o Notepad++ a detectar corretamente que é Unicode-16BE mudando ligeiramente seu programa:

BufferedWriter bw = new BufferedWriter(osw); 
// Acrescente a seguinte linha:
bw.write ('\uFEFF'); // isto acrescenta um Byte Order Mark ao arquivo de saída.
Criado 8 de julho de 2010
Ultima resposta 8 de jul. de 2010
Respostas 3
Participantes 2