Domanda

ho analizzato un testo (codice CAL) con BufferedReader e BufferedWriter in Java, sfortunatamente, righe che ho rosso e scritto con outStream.write (line); sono cambiate, guarda Screenshot:

http://uploadz.eu/images/4qz8mtkm2d9zx3x5ms3n.png h ** p: //uploadz.eu/images/c03hgkrgrmit2ij2mug.png

come vedi, alcuni caratteri speciali hanno cambiato le linee anche se non intendevo cambiarle.

per quanto ne so, Bufferedwriter / Reader dovrebbe funzionare in Unicode per impostazione predefinita.

È stato utile?

Soluzione

Bene BufferedWriter e BufferedReader stanno codificando in modo agnostico: non hanno mai a che fare con le codifiche effettive, dato che stanno solo bufferando lettori e scrittori esistenti.

Ora FileWriter e FileReader utilizzano la codifica di sistema predefinita (urgh). Per ovviare a questo, di solito dovresti usare una coppia InputStream / InputStreamReader o OutputStream / OutputStreamWriter (possibilmente racchiuso in un BufferedReader / BufferedWriter ) e specificare esplicitamente la codifica.

Non hai detto da cosa stai leggendo: è un file? Conosci la codifica del file?

Altri suggerimenti

Dovresti conoscere la codifica se intendi trattare il contenuto come testo (String) oppure, quando la copia è il tuo obiettivo, o trattare il contenuto come un array di byte.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top