我用Java中的BufferedReader和BufferedWriter解析了一个文本(CAL代码),不幸的是,我用红色和用outStream.write(line)编写的行;已经改变了,请看截图:
http://uploadz.eu/images/4qz8mtkm2d9zx3x5ms3n.png ħ**号码://uploadz.eu/images/c03hgkrgrmit2ij2mug.png
如你所见,一些特殊的角色确实改变了线条,虽然我打算不改变它们。
据我所知,默认情况下,Bufferedwriter / Reader应该以unicode工作。
答案 0 :(得分:3)
好BufferedWriter
和BufferedReader
编码不可知 - 它们从不处理实际的编码,因为它们只是缓冲现有的读者和作者。
现在FileWriter
和FileReader
使用默认的系统编码(urgh)。要解决此问题,您通常应使用InputStream
/ InputStreamReader
或OutputStream
/ OutputStreamWriter
对(可能包含在BufferedReader
/ BufferedWriter
中),并明确指定编码。
你还没有说出你实际读到的内容 - 它是一个档案吗?你知道文件的编码吗?
答案 1 :(得分:0)
如果要将内容视为文本(String),或者当复制是您的目标时,您应该知道编码,或者将内容视为字节数组。