打包好的war包放在tomcat下,有时会出现中文乱码的情况。首先应当确定项目的编码格式,tomcat的编码格式,以及cmd命令行的编码格式。
-
项目编码
将要输出到控制台或日志的字符串转为UTF-8
1 String words= "utf-8编码"; 2 words = new String(words.getBytes("GBK"),"UTF-8");
重新打包运行,查看是否乱码。
- tomcat编码
tomcat启动时默认使用系统编码,可更改tomcat bin目录下catalina.bat文件,在代码最上面加入
set JAVA_OPTS=-Xms512m -Xmx1024m -XX:MaxPermSize=1024m -Dfile.encoding=UTF8
xms,xmx设置tomcat占用的最小内存和最大内存,-Dfile.encoding=UTF8设置tomcat编码格式
-
cmd命令行编码
设置此项是由于使用startup.bat启动tomcat时,它会读取catalina.bat的代码并打开一个新窗口运行。由于tomcat打开的cmd默认编码可能不是utf-8,从而导致乱码。
打开注册表,找到HKEY_CURRENT_USER→Console→Tomcat,找到CodePage项,没有则创建,更改值为十进制的65001,点击确定。
或直接复制下面代码,保存为.bat文件,直接运行。
set rr="HKCU\Console\Tomcat" reg add %rr% /v "CodePage" /t REG_DWORD /d 0x0000fde9 /f>nul
重新启动tomcat即可。
时间: 2024-10-20 20:57:45