java 写入txt文件的中文乱码是怎么回事?

2024-11-30 15:36:46
推荐回答(2个)
回答1:

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

解决办法:
如果你期望写到文件中的汉字是 GBK编码,可以:
1、写文件时,将字符串准换成 GBK编码的byte[], 如: myios.write( "汉字".getBytes("GBK"));
2、java 虚拟机启动时,增加 -DFile.encode=GBK 选项。

回答2:

原因是写入时使用的字符编码和期望的不一致导致的。

  1. java工作区统一编码。统一为utf-8

  2. 这个就是输出流的编码问题吧?如果你在输出时指定好具体的编码,或者说指定跟原网页一直的编码。

  3. 如果你期望写到文件中的汉字是 GBK编码,可以写文件时,将字符串准换成 GBK编码的byte[]。

  4. 网页编码和输出流编码一致。