java 写入txt文件的中文乱码问题

我写了一个类似爬虫的程序,要将爬取的网页内容保存到本地的文本文件。
写入之后用记事本打开为什么有的网页内容显示正常,有的网页中文出现乱码?

下载网页源码的时候用的utf-8的编码,但是保存到java中字符串应该已经变成unicode的编码了,跟一般的java字符串没区别了吧??
而且我已经试过写入txt的时候改编码了,gbk,unicode,utf-8都试过!

然后我又用了字符串常量“你好”实验,gbk的时候是正常的。可是一写网页内容就不正常了!!是不是跟不同网页采用的编码有关啊??
我看到网页一般都是utf-8的编码啊。难道不同的网页有不同的编码??

原因是写入时使用的字符编码和期望的不一致导致的,因为JVM虚拟机启动时会因不同的参数使用不同的缺省字符编码。

解决办法:
如果你期望写到文件中的汉字是 GBK编码,可以:
1、写文件时,将字符串准换成 GBK编码的byte[], 如: myios.write( "汉字".getBytes("GBK"));
2、java 虚拟机启动时,增加 -DFile.encode=GBK 选项。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2012-08-07
肯定是编码问题,要看网页用什么编码,写txt时也要用同样的编码。utf-8的用utf-8,gbk的用gbk本回答被提问者采纳
第2个回答  2015-08-08
应该是java和你系统本身的编码字符集不匹配
第3个回答  2012-08-07
java工作区统一编码。统一为utf-8
第4个回答  2012-08-07
换编码
相似回答