解决 IntelliJ IDEA 内置的 Tomcat 日志中显示的中文乱码 您所在的位置:网站首页 鍐涘 解决 IntelliJ IDEA 内置的 Tomcat 日志中显示的中文乱码

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

#解决 IntelliJ IDEA 内置的 Tomcat 日志中显示的中文乱码| 来源: 网络整理| 查看: 265

解决 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 2020.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\IntelliJIdea2020.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-UNNAMED XX-XXX-202X xx:xx:xx.759 淇℃伅 [main] org.apache.catalina.startup.VersionLoggerListener.log Server.鏈嶅姟鍣ㄧ増鏈�: Apache Tomcat/9.0.41 XX-XXX-202X xx:xx:xx.760 淇℃伅 [main] org.apache.catalina.startup.VersionLoggerListener.log 鏈嶅姟鍣ㄦ瀯寤�: xxx x 202x xx:xx:xx UTC XX-XXX-202X xx:xx:xx.761 淇℃伅 [main] org.apache.catalina.startup.VersionLoggerListener.log 鏈嶅姟鍣ㄧ増鏈彿: 9.0.41.0 XX-XXX-202X xx:xx:xx.761 淇℃伅 [main] org.apache.catalina.startup.VersionLoggerListener.log 鎿嶄綔绯荤粺鍚嶇О: Windows 10 XX-XXX-202X xx:xx:xx.761 淇℃伅 [main] org.apache.catalina.startup.VersionLoggerListener.log OS.鐗堟湰: 10.0 XX-XXX-202X xx:xx:xx.761 淇℃伅 [main] org.apache.catalina.startup.VersionLoggerListener.log 鏋舵瀯: amd64 XX-XXX-202X xx:xx:xx.761 淇℃伅 [main] org.apache.catalina.startup.VersionLoggerListener.log Java 鐜鍙橀噺: C:\Program Files\Java\jdk-13.0.2 XX-XXX-202X xx:xx:xx.762 淇℃伅 [main] org.apache.catalina.startup.VersionLoggerListener.log Java铏氭嫙鏈虹増鏈�: 13.0.2+8 XX-XXX-202X xx:xx:xx.762 淇℃伅 [main] org.apache.catalina.startup.VersionLoggerListener.log JVM.渚涘簲鍟�: Oracle Corporation XX-XXX-202X xx:xx:xx.762 淇℃伅 [main] org.apache.catalina.startup.VersionLoggerListener.log CATALINA_BASE: C:\Users\XXXXX\AppData\Local\JetBrains\IntelliJIdea2020.1\tomcat\Unnamed_2021骞�2鏈�25鏃XXX_X XX-XXX-202X xx:xx:xx.762 淇℃伅 [main] org.apache.catalina.startup.VersionLoggerListener.log CATALINA_HOME: C:\Program Files\Apache Software Foundation\Tomcat 9.0 XX-XXX-202X xx:xx:xx.763 淇℃伅 [main] org.apache.catalina.startup.VersionLoggerListener.log 鍛戒护琛屽弬鏁帮細 --add-opens=java.base/java.lang=ALL-UNNAMED XX-XXX-202X xx:xx:xx.763 淇℃伅 [main] org.apache.catalina.startup.VersionLoggerListener.log 鍛戒护琛屽弬鏁帮細 --add-opens=java.base/java.io=ALL-UNNAMED XX-XXX-202X xx:xx:xx.763 淇℃伅 [main] org.apache.catalina.startup.VersionLoggerListener.log 鍛戒护琛屽弬鏁帮細 --add-opens=java.rmi/sun.rmi.transport=ALL-UNNAMED XX-XXX-202X xx:xx:xx.763 淇℃伅 [main] org.apache.catalina.startup.VersionLoggerListener.log 鍛戒护琛屽弬鏁帮細 -Djava.util.logging.config.file=C:\Users\XXXXX\AppData\Local\JetBrains\IntelliJIdea2020.1\tomcat\Unnamed_2021骞�2鏈�25鏃XXXX_X\conf\logging.properties XX-XXX-202X xx:xx:xx.764 淇℃伅 [main] org.apache.catalina.startup.VersionLoggerListener.log 鍛戒护琛屽弬鏁帮細 -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager XX-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=1099 XX-XXX-202X xx:xx:xx.764 淇℃伅 [main] org.apache.catalina.startup.VersionLoggerListener.log 鍛戒护琛屽弬鏁帮細 -Dcom.sun.management.jmxremote.ssl=false XX-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\IntelliJIdea2020.1\tomcat\Unnamed_2021骞�2鏈�25鏃XXXX_X\jmxremote.password XX-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\IntelliJIdea2020.1\tomcat\Unnamed_2021骞�2鏈�25鏃XXXX_X\jmxremote.access XX-XXX-202X xx:xx:xx.764 淇℃伅 [main] org.apache.catalina.startup.VersionLoggerListener.log 鍛戒护琛屽弬鏁帮細 -Djava.rmi.server.hostname=127.0.0.1 XX-XXX-202X xx:xx:xx.765 淇℃伅 [main] org.apache.catalina.startup.VersionLoggerListener.log 鍛戒护琛屽弬鏁帮細 -Djdk.tls.ephemeralDHKeySize=2048 XX-XXX-202X xx:xx:xx.765 淇℃伅 [main] org.apache.catalina.startup.VersionLoggerListener.log 鍛戒护琛屽弬鏁帮細 -Djava.protocol.handler.pkgs=org.apache.catalina.webresources XX-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\IntelliJIdea2020.1\tomcat\Unnamed_2021骞�2鏈�25鏃XXXX_X XX-XXX-202X xx:xx:xx.765 淇℃伅 [main] org.apache.catalina.startup.VersionLoggerListener.log 鍛戒护琛屽弬鏁帮細 -Dcatalina.home=C:\Program Files\Apache Software Foundation\Tomcat 9.0 XX-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\temp XX-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. XXXX XX-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 ms XX-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" stop Using CATALINA_BASE: "C:\Users\XXXXX\AppData\Local\JetBrains\IntelliJIdea2020.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-UNNAMED XX-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\IntelliJIdea2020.1。

在这里插入图片描述

在 IntelliJ IDEA 内部打开的文件 idea64.exe.vmoptions 中添加一行代码 -Dfile.encoding=UTF-8 即可。

在这里插入图片描述

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

【注意】

   有人试图通过修改 IntelliJ IDEA 安装路径(如 C:\Program Files\JetBrains\IntelliJ IDEA 2020.1.2\bin)下的配置文件 idea.exe.vmoptions 和 idea64.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 应用中的通信内容乱码,不建议使用该方法。



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有