1200字范文,内容丰富有趣,写作的好帮手!
1200字范文 > 解决 IntelliJ IDEA 内置的 Tomcat 日志中显示的中文乱码

解决 IntelliJ IDEA 内置的 Tomcat 日志中显示的中文乱码

时间:2022-03-20 18:26:14

相关推荐

解决 IntelliJ IDEA 内置的 Tomcat 日志中显示的中文乱码

解决 IntelliJ IDEA 内置的 Tomcat 日志中显示的中文乱码

方法 1方法 2(不推荐)

笔者的环境:

JDK 13.0.2

Maven 3.6.3

Tomcat 9.0.41(Servlet 4.0,JSP 2.3)

IntelliJ IDEA .1.2 (Ultimate Edition)

初次在 IntelliJ IDEA 基于 Tomcat 构建 Web 应用时,往往会有 Tomcat 日志中显示中文乱码的问题。如下所示:

"C:\Program Files\Apache Software Foundation\Tomcat 9.0\bin\catalina.bat" run[202X-xx-xx xx:xx:xx,470] Artifact XXXXX:war exploded: Waiting for server connection to start artifact deployment...Using CATALINA_BASE: "C:\Users\XXXXX\AppData\Local\JetBrains\IntelliJIdea.1\tomcat\Unnamed_XXXXX_X"Using CATALINA_HOME: "C:\Program Files\Apache Software Foundation\Tomcat 9.0"Using CATALINA_TMPDIR: "C:\Program Files\Apache Software Foundation\Tomcat 9.0\temp"Using JRE_HOME: "C:\Program Files\Java\jdk-13.0.2"Using CLASSPATH: "C:\Program Files\Apache Software Foundation\Tomcat 9.0\bin\bootstrap.jar;C:\Program Files\Apache Software Foundation\Tomcat 9.0\bin\tomcat-juli.jar"Using CATALINA_OPTS: ""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-UNNAMEDXX-XXX-202X xx:xx:xx.759 淇℃伅 [main] org.apache.catalina.startup.VersionLoggerListener.log Server.鏈嶅姟鍣ㄧ増鏈�: Apache Tomcat/9.0.41XX-XXX-202X xx:xx:xx.760 淇℃伅 [main] org.apache.catalina.startup.VersionLoggerListener.log 鏈嶅姟鍣ㄦ瀯寤�: xxx x 202x xx:xx:xx UTCXX-XXX-202X xx:xx:xx.761 淇℃伅 [main] org.apache.catalina.startup.VersionLoggerListener.log 鏈嶅姟鍣ㄧ増鏈彿:9.0.41.0XX-XXX-202X xx:xx:xx.761 淇℃伅 [main] org.apache.catalina.startup.VersionLoggerListener.log 鎿嶄綔绯荤粺鍚嶇О:Windows 10XX-XXX-202X xx:xx:xx.761 淇℃伅 [main] org.apache.catalina.startup.VersionLoggerListener.log OS.鐗堟湰: 10.0XX-XXX-202X xx:xx:xx.761 淇℃伅 [main] org.apache.catalina.startup.VersionLoggerListener.log 鏋舵瀯: amd64XX-XXX-202X xx:xx:xx.761 淇℃伅 [main] org.apache.catalina.startup.VersionLoggerListener.log Java 鐜鍙橀噺:C:\Program Files\Java\jdk-13.0.2XX-XXX-202X xx:xx:xx.762 淇℃伅 [main] org.apache.catalina.startup.VersionLoggerListener.log Java铏氭嫙鏈虹増鏈�: 13.0.2+8XX-XXX-202X xx:xx:xx.762 淇℃伅 [main] org.apache.catalina.startup.VersionLoggerListener.log JVM.渚涘簲鍟�: Oracle CorporationXX-XXX-202X xx:xx:xx.762 淇℃伅 [main] org.apache.catalina.startup.VersionLoggerListener.log CATALINA_BASE:C:\Users\XXXXX\AppData\Local\JetBrains\IntelliJIdea.1\tomcat\Unnamed_骞�2鏈�25鏃XXX_XXX-XXX-202X xx:xx:xx.762 淇℃伅 [main] org.apache.catalina.startup.VersionLoggerListener.log CATALINA_HOME:C:\Program Files\Apache Software Foundation\Tomcat 9.0XX-XXX-202X xx:xx:xx.763 淇℃伅 [main] org.apache.catalina.startup.VersionLoggerListener.log 鍛戒护琛屽弬鏁帮細 --add-opens=java.base/java.lang=ALL-UNNAMEDXX-XXX-202X xx:xx:xx.763 淇℃伅 [main] org.apache.catalina.startup.VersionLoggerListener.log 鍛戒护琛屽弬鏁帮細 --add-opens=java.base/java.io=ALL-UNNAMEDXX-XXX-202X xx:xx:xx.763 淇℃伅 [main] org.apache.catalina.startup.VersionLoggerListener.log 鍛戒护琛屽弬鏁帮細 --add-opens=java.rmi/sun.rmi.transport=ALL-UNNAMEDXX-XXX-202X xx:xx:xx.763 淇℃伅 [main] org.apache.catalina.startup.VersionLoggerListener.log 鍛戒护琛屽弬鏁帮細 -Djava.util.logging.config.file=C:\Users\XXXXX\AppData\Local\JetBrains\IntelliJIdea.1\tomcat\Unnamed_骞�2鏈�25鏃XXXX_X\conf\logging.propertiesXX-XXX-202X xx:xx:xx.764 淇℃伅 [main] org.apache.catalina.startup.VersionLoggerListener.log 鍛戒护琛屽弬鏁帮細 -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManagerXX-XXX-202X xx:xx:xx.764 淇℃伅 [main] org.apache.catalina.startup.VersionLoggerListener.log 鍛戒护琛屽弬鏁帮細 -Dcom.sun.management.jmxremote=XX-XXX-202X xx:xx:xx.764 淇℃伅 [main] org.apache.catalina.startup.VersionLoggerListener.log 鍛戒护琛屽弬鏁帮細 -Dcom.sun.management.jmxremote.port=1099XX-XXX-202X xx:xx:xx.764 淇℃伅 [main] org.apache.catalina.startup.VersionLoggerListener.log 鍛戒护琛屽弬鏁帮細 -Dcom.sun.management.jmxremote.ssl=falseXX-XXX-202X xx:xx:xx.764 淇℃伅 [main] org.apache.catalina.startup.VersionLoggerListener.log 鍛戒护琛屽弬鏁帮細 -Dcom.sun.management.jmxremote.password.file=C:\Users\XXXXX\AppData\Local\JetBrains\IntelliJIdea.1\tomcat\Unnamed_骞�2鏈�25鏃XXXX_X\jmxremote.passwordXX-XXX-202X xx:xx:xx.764 淇℃伅 [main] org.apache.catalina.startup.VersionLoggerListener.log 鍛戒护琛屽弬鏁帮細 -Dcom.sun.management.jmxremote.access.file=C:\Users\XXXXX\AppData\Local\JetBrains\IntelliJIdea.1\tomcat\Unnamed_骞�2鏈�25鏃XXXX_X\jmxremote.accessXX-XXX-202X xx:xx:xx.764 淇℃伅 [main] org.apache.catalina.startup.VersionLoggerListener.log 鍛戒护琛屽弬鏁帮細 -Djava.rmi.server.hostname=127.0.0.1XX-XXX-202X xx:xx:xx.765 淇℃伅 [main] org.apache.catalina.startup.VersionLoggerListener.log 鍛戒护琛屽弬鏁帮細 -Djdk.tls.ephemeralDHKeySize=2048XX-XXX-202X xx:xx:xx.765 淇℃伅 [main] org.apache.catalina.startup.VersionLoggerListener.log 鍛戒护琛屽弬鏁帮細 -Djava.protocol.handler.pkgs=org.apache.catalina.webresourcesXX-XXX-202X xx:xx:xx.765 淇℃伅 [main] org.apache.catalina.startup.VersionLoggerListener.log 鍛戒护琛屽弬鏁帮細 -Dignore.endorsed.dirs=XX-XXX-202X xx:xx:xx.765 淇℃伅 [main] org.apache.catalina.startup.VersionLoggerListener.log 鍛戒护琛屽弬鏁帮細 -Dcatalina.base=C:\Users\XXXXX\AppData\Local\JetBrains\IntelliJIdea.1\tomcat\Unnamed_骞�2鏈�25鏃XXXX_XXX-XXX-202X xx:xx:xx.765 淇℃伅 [main] org.apache.catalina.startup.VersionLoggerListener.log 鍛戒护琛屽弬鏁帮細 -Dcatalina.home=C:\Program Files\Apache Software Foundation\Tomcat 9.0XX-XXX-202X xx:xx:xx.765 淇℃伅 [main] org.apache.catalina.startup.VersionLoggerListener.log 鍛戒护琛屽弬鏁帮細 -Djava.io.tmpdir=C:\Program Files\Apache Software Foundation\Tomcat 9.0\tempXX-XXX-202X xx:xx:xx.775 淇℃伅 [main] org.apache.catalina.core.AprLifecycleListener.lifecycleEvent 鍦╦ava.library.path:[C:\XXXX...XXXX]涓婃壘涓嶅埌鍩轰簬APR鐨凙pache Tomcat鏈満搴擄紝璇ュ簱鍏佽鍦ㄧ敓浜х幆澧冧腑鑾峰緱鏈�浣虫�ц兘XX-XXX-202X xx:xx:xx.961 淇℃伅 [main] org.apache.coyote.AbstractProtocol.init 鍒濆鍖栧崗璁鐞嗗櫒 ["http-nio-8080"]XX-XXX-202X xx:xx:xx.642 淇℃伅 [main] org.apache.catalina.startup.Catalina.load 鏈嶅姟鍣ㄥ湪[1052]姣鍐呭垵濮嬪寲XX-XXX-202X xx:xx:xx.675 淇℃伅 [main] org.apache.catalina.core.StandardService.startInternal 姝e湪鍚姩鏈嶅姟[Catalina]XX-XXX-202X xx:xx:xx.675 淇℃伅 [main] org.apache.catalina.core.StandardEngine.startInternal 姝e湪鍚姩 Servlet 寮曟搸锛歔Apache Tomcat/9.0.41]XX-XXX-202X xx:xx:xx.683 淇℃伅 [main] org.apache.coyote.AbstractProtocol.start 寮�濮嬪崗璁鐞嗗彞鏌刐"http-nio-8080"]XX-XXX-202X xx:xx:xx.697 淇℃伅 [main] org.apache.catalina.startup.Catalina.start [55]姣鍚庢湇鍔″櫒鍚姩Connected to server[202X-xx-xx xx:xx:xx,067] Artifact XXXXX:war exploded: Artifact is being deployed, please wait...XX-XXX-202X xx:xx:xx.710 淇℃伅 [RMI TCP Connection(3)-127.0.0.1] org.apache.jasper.servlet.TldScanner.scanJars 鑷冲皯鏈変竴涓狫AR琚壂鎻忕敤浜嶵LD浣嗗皻鏈寘鍚玊LD銆� 涓烘璁板綍鍣ㄥ惎鐢ㄨ皟璇曟棩蹇楄褰曪紝浠ヨ幏鍙栧凡鎵弿浣嗘湭鍦ㄥ叾涓壘鍒癟LD鐨勫畬鏁碕AR鍒楄〃銆� 鍦ㄦ壂鎻忔湡闂磋烦杩囦笉闇�瑕佺殑JAR鍙互缂╃煭鍚姩鏃堕棿鍜孞SP缂栬瘧鏃堕棿銆�XX-XXX-202X xx:xx:xx.759 淇℃伅 [RMI TCP Connection(3)-127.0.0.1] org.springframework.web.context.ContextLoader.initWebApplicationContext Root WebApplicationContext: initialization started#XXXX init.XXXXXX-XXX-202X xx:xx:xx.160 淇℃伅 [RMI TCP Connection(3)-127.0.0.1] org.springframework.web.context.ContextLoader.initWebApplicationContext Root WebApplicationContext initialized in 400 msXX-XXX-202X xx:xx:xx.923 璀﹀憡 [RMI TCP Connection(3)-127.0.0.1] org.apache.catalina.util.SessionIdGeneratorBase.createSecureRandom 浣跨敤[SHA1PRNG]鍒涘缓浼氳瘽ID鐢熸垚鐨凷ecureRandom瀹炰緥鑺辫垂浜哰761]姣銆�XX-XXX-202X xx:xx:xx.937 淇℃伅 [RMI TCP Connection(3)-127.0.0.1] org.springframework.web.servlet.FrameworkServlet.initServletBean Initializing Servlet 'springmvc'#XXX init.XXXX@xxxxxxx"C:\Program Files\Apache Software Foundation\Tomcat 9.0\bin\catalina.bat" stopUsing CATALINA_BASE: "C:\Users\XXXXX\AppData\Local\JetBrains\IntelliJIdea.1\tomcat\Unnamed_XXXXX_4"Using CATALINA_HOME: "C:\Program Files\Apache Software Foundation\Tomcat 9.0"Using CATALINA_TMPDIR: "C:\Program Files\Apache Software Foundation\Tomcat 9.0\temp"Using JRE_HOME: "C:\Program Files\Java\jdk-13.0.2"Using CLASSPATH: "C:\Program Files\Apache Software Foundation\Tomcat 9.0\bin\bootstrap.jar;C:\Program Files\Apache Software Foundation\Tomcat 9.0\bin\tomcat-juli.jar"Using CATALINA_OPTS: ""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-UNNAMEDXX-XXX-202X xx:xx:xx.779 涓ラ噸 [main] org.apache.catalina.startup.Catalina.stopServer 鏈厤缃叧闂鍙c�傞�氳繃OS淇″彿鍏抽棴鏈嶅姟鍣ㄣ�傛湇鍔″櫒鏈叧闂��

在以后的开发中将会明白,Tomcat 日志信息是开发中不可或缺的内容,因此修复此 Bug 必不可少。修复的方法如下。

方法 1

修改 IntelliJ IDEA 的用户配置文件idea64.exe.vmoptions。按下图操作即可。实际上,这个文件位于C:\Users\Windows用户名\AppData\Roaming\JetBrains\IntelliJIdea.1。 在 IntelliJ IDEA 内部打开的文件idea64.exe.vmoptions中添加一行代码-Dfile.encoding=UTF-8即可。 重启 IntelliJ IDEA,将会看到 Tomcat 日志中显示了可读的中文。

【注意】

有人试图通过修改 IntelliJ IDEA 安装路径(如C:\Program Files\JetBrains\IntelliJ IDEA .1.2\bin)下的配置文件idea.exe.vmoptionsidea64.exe.vmoptions来达到与上述相同的目的。这两个文件是 IntelliJ IDEA 全局的配置文件,而上述方法 1中的用户配置文件idea64.exe.vmoptions将会覆盖这两个文件的效果,因此在这两个文件中添加代码-Dfile.encoding=UTF-8是不起作用的。

方法 2(不推荐)

修改 Tomcat 的日志配置文件logging.properties。此文件位于目录Tomcat 安装目录\conf下,如C:\Program Files\Apache Software Foundation\Tomcat 9.0\conf\logging.properties

找到并打开此文件logging.properties,在该文件中将java.util.logging.ConsoleHandler.encoding值由UTF-8改为GBK即可。

重启 IntelliJ IDEA,将会看到 Tomcat 日志中显示了可读的中文。

【注意】

此方法将影响 Tomcat 通信的数据编码,有可能会使 Web 应用中的通信内容乱码,不建议使用该方法。

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。