0

我用 Java 中的 BufferedReader 和 BufferedWriter 解析了一个文本(CAL 代码),不幸的是,我用 outStream.write(line) 编写了红色的行;变了,请看截图:

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

如你所见,一些特殊字符确实改变了线条,尽管我不打算改变它们。

据我所知,Bufferedwriter / Reader 默认情况下应该在 unicode 中工作。

4

2 回答 2

3

好吧BufferedWriter,并且与BufferedReader编码无关 - 它们从不处理实际的编码,因为它们只是在缓冲现有的读取器和写入器。

现在FileWriterFileReader使用默认系统编码(urgh)。为了解决这个问题,您通常应该使用InputStream/InputStreamReaderOutputStream/OutputStreamWriter对(可能包含在BufferedReader/中BufferedWriter),并明确指定编码。

你还没有说你实际上在读什么——它是一个文件吗?你知道文件的编码吗?

于 2009-09-14T13:37:31.473 回答
0

如果要将内容视为文本(字符串),或者当复制是您的目标时,您应该知道编码,或者将内容视为字节数组。

于 2009-09-14T22:26:41.357 回答