发现一个很奇怪的问题。
如果只读写UTF-8或者GBK文件,则不会出现乱码。但是:
1、如果程序的前半部分读取UTF-8文件,后半部分将结果写出到GBK文件,则这个GBK文件头自动带上了UTF-8的BOM(FF FE),其它内容还是按照GBK编码的,这样就造成了乱码问题。
2、如果输出文件本来就存在,而且带UTF-8的BOM,则即使程序只读取GBK文件,写出GBK文件,最终的输出文件还是带有BOM,这样也会造成乱码问题。
想尽办法也解决不了这两个问题,望高手相助,急用。谢谢!
如果只读写UTF-8或者GBK文件,则不会出现乱码。但是:
1、如果程序的前半部分读取UTF-8文件,后半部分将结果写出到GBK文件,则这个GBK文件头自动带上了UTF-8的BOM(FF FE),其它内容还是按照GBK编码的,这样就造成了乱码问题。
2、如果输出文件本来就存在,而且带UTF-8的BOM,则即使程序只读取GBK文件,写出GBK文件,最终的输出文件还是带有BOM,这样也会造成乱码问题。
想尽办法也解决不了这两个问题,望高手相助,急用。谢谢!
BufferedWriter writer = null;
try {
writer = new BufferedWriter(new OutputStreamWriter(
new FileOutputStream(outputFile), encoding));
for (int i = 0, n = fieldList.size(); i < n; i++) {
String fieldName = (String) fieldList.get(i);
writer.write(fieldName + '=' + r.get(fieldName));
writer.newLine();
}
} finally {
if (writer != null) {
writer.close();
}
}
B:写入到GBK编码的文件中时,把要写进去的内容按GBK编一下码