关于eclipse部署项目不乱码,在tomcat直接部署项目乱码的解决办法

写代码总会有神奇的事情发生。

在windows10部署自己的项目,eclipse编码格式为utf-8,server.xml 中也没有设置uriEncoding="utf-8"

不报乱码。

在服务器上搭建项目的时候,用tomcat中自带的startup.bat直接部署项目,发生乱码。

三种方法亲测,第一种加第三种方法解决了我的问题,第二种我没有找到Tomcat的注册表,不过还是发出来,让大家参考。

(还有一种办法,就是从AJAX请求获取数据的时候,设置utf-8中文编码,详情见常见问题之--ajax获取数据中文乱码问题最简单的完美解决方案)

进入正题,解决办法1:

可以直接在tomcat中bin目录下的catalina.ba中@echo off后添加如下语句

set JAVA_OPTS=-Xms128m -Xmx512m -XX:MaxPermSize=256m -Dfile.encoding=UTF8

rem %JAVA_OPTS%

如下图:

 

 

第一种方法非常方便,但是windows控制台还是会乱码。

解决办法2:修改cmd控制台的字符编码集

 

 

 

如果tomcat中有CodePage 那么修改十进制参数为65001 (utf-8)

如果没有则添加。

还有一项是修改jdk字符编码集。在系统环境变量中进行添加

在环境变量中添加JAVA_TOOL_OPTIONS选项,添加参数-Dfile.encoding=UTF-8 -Duser.language=en -Duser.country=US,

修改jdk编码后,cmd控制台就不会乱码了。

解决办法3:

1、找到~/conf/logging.properties

2、添加语句:java.util.logging.ConsoleHandler.encoding = UTF-8

改为:java.util.logging.ConsoleHandler.encoding = GBK,如果没有此语句,直接添加即可。

3、重启tomcat!

这是因为windows默认编码集为GBK,由于使用startup.bat启动tomcat时,它会读取catalina.bat的代码并打开一个新窗口运行。打开的cmd默认编码可能不是utf-8,与系统编码不一致,所以导致乱码

posted @ 2020-03-25 13:47  万里哥  阅读(721)  评论(0编辑  收藏  举报