java中filewriter中文乱码怎么解决?

Python0161

java中filewriter中文乱码怎么解决?,第1张

要明白,用filewriter读取文件采取的是平台默认编码(视操作系统而定)。当要写入的文本文件编码和平台默认编码不一致时,就会出现中文乱码的情况。这时可以使用filewriter 的父类OutputStreamWriter来读取。OutputStreamWriter允许用户指定编码方式,代码为:

FileInputStream fis=new FileInputStream("文件路径");

OutputStreamWriter osw=new OutputStreamWriter(fis,"文本文件的编码方式(ANSI,UTF-8...)")

osw.write()

这样写入的编码可以保证和源文本文件编码一致,就不会出现乱码了。

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

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

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

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

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

当我们不加设置就编译时,相当于使用了参数:javac -encoding gbk XX.java,当然就会出现不兼容的情况。

解决方法:

1、转换成UTF-8编码格式,但仍然有错解决办法是:应该使用-encoding参数指明编码方式:javac -encoding UTF-8 XX.java

2、开始-->计算机-->鼠标反键(鼠标右键)-->属性-->高级系统设置-->环境变量-->系统变量新建。然后输入:“JAVA_TOOL_OPTIONS”变量,值为“-Dfile.encoding=UTF-8”然后确定、确定、在确定后。新开命令行窗口,再次输入javac命令。