Tomcat乱码问题 catalina.bat设置为UTF-8 控制台出现乱码

本文介绍了在Windows环境下解决Tomcat中文乱码的方法,包括配置catalina.bat、IDEA及服务文件中的UTF-8编码,并给出了注册表设置以解决CMD窗口乱码问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1、catalina.bat中必须设置为UTF-8,如果我不设置为UTF-8,页面接收到的就是乱码了,尝试过各种UTF-8的调试,都无解,最后还是只能在catalina.bat的set "JAVA_OPTS=%JAVA_OPTS% %JSSE_OPTS%  -Dfile.encoding=UTF-8" ,加上UTF-8问题就可以解决了,但是tomcat的命令框和输出日志都是乱码


2、如果是用编译工具,在IDEA编译器中的VM options:设置-Dfile.encoding=UTF-8,或eclipse 的设置中 改成utf-8 输出的问题可以解决。但是在windows服务器上用tomcat部署的时候,乱码解决不了。

3、在service.xml中,加上UTF-8,试过是无用的,依旧乱码。

<Connector port="80" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8433" URIEncoding="UTF-8" />

<Connector port="8009" protocol="AJP/1.3" redirectPort="8433" URIEncoding="UTF-8"/>


问题原因:

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


解决方法:

修改cmd命令行的编码,打开注册表,找到HKEY_CURRENT_USER→Console→Tomcat(如果你改了tomcat的标题栏,这里就是你打开的命令窗口的名字),找到CodePage项,没有则创建,更改值为十进制的65001,点击确定。


D:\apache-tomcat-9.0.37\bin>catalina.bat run Using CATALINA_BASE: "D:\apache-tomcat-9.0.37\" Using CATALINA_HOME: "D:\apache-tomcat-9.0.37\" Using CATALINA_TMPDIR: "D:\apache-tomcat-9.0.37\\temp" Using JRE_HOME: "D:\jdk11_jb51" Using CLASSPATH: "D:\apache-tomcat-9.0.37\\bin\bootstrap.jar;D:\apache-to cat-9.0.37\\bin\tomcat-juli.jar" NOTE: Picked up JDK_JAVA_OPTIONS: --add-opens=java.base/java.lang=ALL-UNNAMED -add-opens=java.base/java.io=ALL-UNNAMED --add-opens=java.rmi/sun.rmi.transport ALL-UNNAMED java.util.logging.ErrorManager: 4: Unable to create [D:\apache-tomcat-9.0.37" - catalina.home=D:\apache-tomcat-9.0.37"\logs] java.util.logging.ErrorManager: 4: Unable to create [D:\apache-tomcat-9.0.37" - catalina.home=D:\apache-tomcat-9.0.37"\logs] java.util.logging.ErrorManager: 4: Unable to create [D:\apache-tomcat-9.0.37" - catalina.home=D:\apache-tomcat-9.0.37"\logs] java.util.logging.ErrorManager: 4: Unable to create [D:\apache-tomcat-9.0.37" - catalina.home=D:\apache-tomcat-9.0.37"\logs] 04-Aug-2012 21:06:15.779 涓ラ噸 [main] org.apache.catalina.startup.Bootstrap.in tClassLoaders Class loader creation threw exception java.lang.IllegalArgumentException: The double quote ["] character can nly be used to quote paths. It must not appear in a path. This loader path is n t valid: ["D:\apache-tomcat-9.0.37" -Dcatalina.home=D:\apache-tomcat-9.0.37"/li ","D:\apache-tomcat-9.0.37" -Dcatalina.home=D:\apache-tomcat-9.0.37"/lib/*.jar" "D:\apache-tomcat-9.0.37/lib","D:\apache-tomcat-9.0.37/lib/*.jar"] at org.apache.catalina.startup.Bootstrap.getPaths(Bootstrap.jav :593) at org.apache.catalina.startup.Bootstrap.createClassLoader(Boot trap.java:170) at org.apache.catalina.startup.Bootstrap.initClassLoaders(Boots rap.java:144) at org.apache.catalina.startup.Bootstrap.init(Bootstrap.java:25 ) at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:44 ) D:\apache-tomcat-9.0.37\bin>
06-27
评论 72
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值