发现一个很奇怪的问题。
如果只读写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,这样也会造成乱码问题。
想尽办法也解决不了这两个问题,望高手相助,急用。谢谢!
解决方案 »
- 请教一下,我对接口这样理解对不对:
- 正则表达式的疑惑
- String x="Pi";与String x=new String("Pi");是完全一样的吧?
- Please help me, I have a server.java and client.java to test the file transmission on internet
- 如何对异常消息进行国际化?
- 关于类的卸载
- www.go2map.com里下载地图时出现的“正在查询请稍候”的图标是怎么出来的?
- 到底该用哪种Java编辑器好呢?
- java邮件处理??
- 关于 SessionBean+JDBC 和 BMP 两者之间的疑惑,请指教!
- 高手留步!!!在linux中java如何获得MAC Address
- JBuilder能运行单纯的JAVA程序吗?
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编一下码