记录Windows系统部署Tomcat与项目中出现的中文乱码与几个解决方案


emm,反正就不管各种原因吧,系统就是要在Windows上部署。


  • Windows 10 操作系统
  • Tomcat 8.5
  • 项目是UTF-8编码

相信来到这篇文章的朋友,应该是遇到同样问题的,在idea中测试挺好,打包带走,tomcat,启动,come on !

启动正常,打开页面,what?中文乱码了。

页面显示中的中文乱码?前后端交互中文乱码?还是全部中文都乱码?

其实这里很简单,因为项目是utf-8编码,那么就把jvm启动参数改一下。

-Dfile.encoding=UTF8 -Dsun.jnu.encoding=UTF8 (是不是似曾相识?加入该语句)

tomcat目录 —— bin文件夹 —— catalina.bat :

:gotJsseOpts
set “JAVA_OPTS=%JAVA_OPTS% %JSSE_OPTS% -Dfile.encoding=UTF8 -Dsun.jnu.encoding=UTF8

set “JAVA_OPTS=%JAVA_OPTS% -Djava.protocol.handler.pkgs=org.apache.catalina.webresources -Dfile.encoding=UTF8 -Dsun.jnu.encoding=UTF8

好了,现在重启服务器,页面显示正常,前后台交互传值也是utf-8的编码。但是随即新的问题出现,控制台乱码了。

查阅了资料,因为Windows系统下,CMD的编码是GBK,自然中文乱码,解决方案:

1.打开一个新的CMD窗口,在CMD中输入 CHCP 65001 ,设置编码为UTF-8

注:CHCP是一个计算机指令,能够显示或设置活动代码页编号。
65001 UTF-8代码页
950 繁体中文
936 简体中文默认的GBK
437 MS-DOS 美国英语

通过切换路径,进入tomcat目录下,运行startup.bat,不出意外,控制台不再乱码。

2.上个方法,有些麻烦的是,每次都需要如此操作启动服务器。那么还可以通过设置默认编码。

通过修改注册表:

在运行中通过regedit进入注册表
找到HKEY_CURRENT_USER\Console%SystemRoot%_system32_cmd.exe 新建一个
DWORD(32位值),命名为CodePage,值设为65001

若是能成功,那自然是好的,目前网上很多方案都是这样,但是不知为何的是,我并没有生效。

3.第三种方案

依然是修改注册表:

在运行中通过regedit进入注册表
找到HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Command Processor
新建-字符串值,命名autorun,右键修改:数值数据填写 “chcp 65001”,确定。

现在,直接启动服务器,控制台中文正常显示。

经常遇到这样那样的乱码,每次搞得心烦意乱,时间久了老是忘记之前的具体解决方案,现在记录在案,以备不时之需。

发布了32 篇原创文章 · 获赞 76 · 访问量 43万+
展开阅读全文

没有更多推荐了,返回首页

©️2019 CSDN 皮肤主题: 技术黑板 设计师: CSDN官方博客

分享到微信朋友圈

×

扫一扫,手机浏览