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

http://uploadz.eu/images/4qz8mtkm2d9zx3x5ms3n.png ħ**号码://uploadz.eu/images/c03hgkrgrmit2ij2mug.png

如你所见,一些特殊的角色确实改变了线条,虽然我打算不改变它们。

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

有帮助吗?

解决方案

BufferedWriter BufferedReader 编码不可知 - 它们从不处理实际的编码,因为它们只是缓冲现有的读者和编写者。

现在 FileWriter FileReader 使用默认的系统编码(urgh)。要解决这个问题,通常应该使用 InputStream / InputStreamReader OutputStream / OutputStreamWriter 对(可能包含在 BufferedReader / BufferedWriter ),并明确指定编码。

你还没有说出你实际读到的内容 - 它是一个档案吗?你知道文件的编码吗?

其他提示

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

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top