问题场景:相同的代码,在同事电脑上可以正常运行,在我电脑上用项目跑代码的时候,密文没法解密,用main方法就可以,而且用同事代码打的war包在我本地也不行,初步排查,应该是本地环境的问题。

场景1:本地开发eclipse,解决此方法需要确认两个地方:

    1、项目——properties——Resource——确定编码是不是UTF-8;

    2、eclipse——windows——Preferences——General——WorkSpace——确定编码是不是UTF-8

通过上面方法可以解决项目编码冲突问题,但是新的问题出现了,控制台有中文乱码了,解决方法如下:在引入jdk的时候指定编码

    

 

这样,本地开发的eclipse就可以正常开发了,但是,发布到正时系统怎么办呀!!

场景2:服务器tomcat运行,解决方法:

    1、在tomcat——conf——server.xml下面的<Connector port="6666" protocol="HTTP/1.1"……>后面添加 URIEncoding="UTF-8" 即 <Connector port="6666" protocol="HTTP/1.1"……URIEncoding="UTF-8">,有时候不起作用,需要按方法2进行修改

    2、在tomcat——bin——catalina.bat下找到 set "JAVA_OPTS=%JAVA_OPTS% %JSSE_OPTS%",在后面加上-Dfile.encoding=UTF-8,即set "JAVA_OPTS=%JAVA_OPTS% %JSSE_OPTS% -Dfile.encoding=UTF-8"。

 

通过上面方法可以正常解决服务器tomcat编码混乱问题,但是随之的问题就是,控制台打印出来的是中文乱码,解决方法:

    在tomcat——conf——logging.properties中,将所有的UTF-8改为GBK,如果不存在,则添加

1catalina.org.apache.juli.AsyncFileHandler.encoding = GBK
2localhost.org.apache.juli.AsyncFileHandler.encoding = GBK
java.util.logging.ConsoleHandler.encoding = GBK

    此时控制台部分内容还是乱码,但是log日志没问题了,所以暂时先这样。

 

 

    

posted on 2019-12-13 11:25  程序员丁先生  阅读(400)  评论(0编辑  收藏  举报