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

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

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

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

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

osw.write()

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

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

解决办法:

如果你期望写到文件中的汉字是 GBK编码,可以:

1、写文件时,将字符串准换成 GBK编码的byte[], 如: myios.write( "汉字".getBytes("GBK"))

2、java 虚拟机启动时,增加 -DFile.encode=GBK 选项。

1、你要将所有的文件的编码都设置成UTF-8,还有,你的MyEclipse或者Eclipse应该配置jsp还有java文件还有项目都设置为UTF-8.

2、eclipse 中使用模板新建 JSP,xhtml等 文件时,默认的编码为:ISO-8859-1。 ISO-8859-1 编码对于中文的显示是不支持的,如果要支持简体中文,则编码方式应为 GBK 或者 GB2312 或者 UTF-8(推荐) 等。右键菜单栏window -->preferences -->在type filter text中输入jsp--> 选择下面的jsp ->选择creating files组中的encoding 为UTF-8编码就可以了

如果要使新建立工程、java文件直接使UTF-8则需要做以下工作: 

1、windows->Preferences...打开"首选项"对话框,左侧导航树,导航到general->Workspace,右侧 Text file encoding,选择Other,改变为UTF-8,以后新建立工程其属性对话框中的Text file encoding即为UTF-8。

2、windows->Preferences...打开"首选项"对话框,左侧导航树,导航到general->Content Types,右侧Context Types树,点开Text,选择Java Source File,在下面的Default encoding输入框中输入UTF-8,点Update,则设置Java文件编码为UTF-8。其他java应用开发相关的文件 如:properties、XML等已经由Eclipse缺省指定,分别为ISO8859-1,UTF-8,如开发中确需改变编码格式则可以在此指定。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/tougao/11703718.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-18
下一篇 2023-05-18

发表评论

登录后才能评论

评论列表(0条)

保存