[Tomcat]IDEA设置jvm编码UTF-8导致控制台乱码(读文件乱码)

来源:互联网 发布:mac文件共享 xp 编辑:程序博客网 时间:2024/05/25 18:10

在cmd 输入chcp,得到936,说明我这个机子的默认编码是GBK。

于是这就很尴尬了,Tomcat的JVM默认启动方式是按照本机的默认编码做的file.encoding。我在本地开发用的是GBK,那我一旦把项目发布到其他服务器上,编码不一致,中文百分之百就会乱码。


于是我尝试在Tomcat8.0/bin/catalina.bat下设置JVM编码:

set "JAVA_OPTS=%JAVA_OPTS% -Dfile.encoding=UTF-8"

结果控制台的输出完全乱码了。

我用的是IDEA做开发,在Debug Configuration中把VM options里也加上了:

-Dfile.encoding=UTF-8
File-setting和idea.vmoptions里也全部是UTF-8的编码设置...

然后又查看了一下现在Tomcat的JVM编码:

System.getProperty("file.encoding");
确实是UTF-8。但是控制台输出就是乱码(但是写出文件是UTF-8,毫无问题)。


在cmd里chcp 65001切到UTF-8也无济于事。就很迷...


临时解决方法:

不过还好这个项目和编码唯一有交集的只有读写文件,完全可以利用读写流的编码绕过这个编码问题:

BufferedReader in =new BufferedReader(new InputStreamReader(new FileInputStream(file),"UTF-8"));
先用这个方法鸵鸟一下,日后找到方法再说。

不清楚是不是我机子的问题,过段时间换个系统和机子测试一下。


更新:

好吧,我找到解决方法了_(:зゝ∠)_

之前看错文件了。idea.vmoptions这个配置文件对应的是32位的机子,下面还有个idea64.exe.vmoptions文件,在里面加上-Dfile.encoding=UTF-8就好了。

原创粉丝点击