IDEA启动tomcat控制台出现中文乱码问题完美解决方案(亲测有效)

最近在IDEA上配置Tomcat服务器的时候控制台的日志文件出现中文乱码,然后在网上找了很多种办法都没有效果,最后自己鼓捣了一下还是解决了,并不是像其他人的那么复杂改这改那,改各种配置文件。不用那么麻烦!!!
先来看一下我的中文乱码:

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
31-Aug-2020 19:40:07.386 淇℃伅 [main] org.apache.catalina.startup.VersionLoggerListener.log Server.鏈嶅姟鍣ㄧ増鏈�:     Apache Tomcat/9.0.30
31-Aug-2020 19:40:07.386 淇℃伅 [main] org.apache.catalina.startup.VersionLoggerListener.log 鏈嶅姟鍣ㄦ瀯寤�:            Dec 7 2019 16:42:04 UTC
31-Aug-2020 19:40:07.386 淇℃伅 [main] org.apache.catalina.startup.VersionLoggerListener.log 鏈嶅姟鍣ㄧ増鏈彿(锛�9.0.30.0
31-Aug-2020 19:40:07.386 淇℃伅 [main] org.apache.catalina.startup.VersionLoggerListener.log OS Name:               Windows 10
31-Aug-2020 19:40:07.386 淇℃伅 [main] org.apache.catalina.startup.VersionLoggerListener.log OS.鐗堟湰:               10.0
31-Aug-2020 19:40:07.396 淇℃伅 [main] org.apache.catalina.startup.VersionLoggerListener.log 鏋舵瀯:                  amd64
31-Aug-2020 19:40:07.396 淇℃伅 [main] org.apache.catalina.startup.VersionLoggerListener.log Java 鐜鍙橀噺:         C:\Program Files\Java\jdk-13.0.2
31-Aug-2020 19:40:07.396 淇℃伅 [main] org.apache.catalina.startup.VersionLoggerListener.log JVM 鐗堟湰:              13.0.2+8
31-Aug-2020 19:40:07.396 淇℃伅 [main] org.apache.catalina.startup.VersionLoggerListener.log JVM.渚涘簲鍟�:            Oracle Corporation
31-Aug-2020 19:40:07.396 淇℃伅 [main] org.apache.catalina.startup.VersionLoggerListener.log CATALINA_BASE:         C:\Users\y1833\AppData\Local\JetBrains\IntelliJIdea2020.1\tomcat\Tomcat_9_0_30_firstWeb
31-Aug-2020 19:40:07.396 淇℃伅 [main] org.apache.catalina.startup.VersionLoggerListener.log CATALINA_HOME:         D:\Apache\tomcat\apache-tomcat-9.0.30
31-Aug-2020 19:40:07.396 淇℃伅 [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: --add-opens=java.base/java.lang=ALL-UNNAMED
31-Aug-2020 19:40:07.396 淇℃伅 [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: --add-opens=java.base/java.io=ALL-UNNAMED
31-Aug-2020 19:40:07.396 淇℃伅 [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: --add-opens=java.rmi/sun.rmi.transport=ALL-UNNAMED
31-Aug-2020 19:40:07.396 淇℃伅 [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Djava.util.logging.config.file=C:\Users\y1833\AppData\Local\JetBrains\IntelliJIdea2020.1\tomcat\Tomcat_9_0_30_firstWeb\conf\logging.properties
31-Aug-2020 19:40:07.396 淇℃伅 [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager
31-Aug-2020 19:40:07.396 淇℃伅 [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Dcom.sun.management.jmxremote=
31-Aug-2020 19:40:07.396 淇℃伅 [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Dcom.sun.management.jmxremote.port=1099
31-Aug-2020 19:40:07.396 淇℃伅 [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Dcom.sun.management.jmxremote.ssl=false
31-Aug-2020 19:40:07.396 淇℃伅 [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Dcom.sun.management.jmxremote.password.file=C:\Users\y1833\AppData\Local\JetBrains\IntelliJIdea2020.1\tomcat\Tomcat_9_0_30_firstWeb\jmxremote.password
31-Aug-2020 19:40:07.396 淇℃伅 [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Dcom.sun.management.jmxremote.access.file=C:\Users\y1833\AppData\Local\JetBrains\IntelliJIdea2020.1\tomcat\Tomcat_9_0_30_firstWeb\jmxremote.access
31-Aug-2020 19:40:07.396 淇℃伅 [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Djava.rmi.server.hostname=127.0.0.1
31-Aug-2020 19:40:07.396 淇℃伅 [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Djdk.tls.ephemeralDHKeySize=2048
31-Aug-2020 19:40:07.396 淇℃伅 [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Djava.protocol.handler.pkgs=org.apache.catalina.webresources
31-Aug-2020 19:40:07.396 淇℃伅 [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Dignore.endorsed.dirs=
31-Aug-2020 19:40:07.396 淇℃伅 [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Dcatalina.base=C:\Users\y1833\AppData\Local\JetBrains\IntelliJIdea2020.1\tomcat\Tomcat_9_0_30_firstWeb
31-Aug-2020 19:40:07.396 淇℃伅 [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Dcatalina.home=D:\Apache\tomcat\apache-tomcat-9.0.30
31-Aug-2020 19:40:07.396 淇℃伅 [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Djava.io.tmpdir=D:\Apache\tomcat\apache-tomcat-9.0.30\temp
31-Aug-2020 19:40:07.396 淇℃伅 [main] org.apache.catalina.core.AprLifecycleListener.lifecycleEvent The APR based Apache Tomcat Native library which allows optimal performance in production environments was not found on the java.library.path: [C:\Program Files\Java\jdk-13.0.2\bin;C:\Windows\Sun\Java\bin;C:\Windows\system32;C:\Windows;C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0\;C:\Windows\System32\OpenSSH\;C:\Program Files (x86)\NVIDIA Corporation\PhysX\Common;C:\Program Files\NVIDIA Corporation\NVIDIA NvDLISR;C:\Program Files\Java\jdk-13.0.2\bin;D:\mysql_project\bin;C:\Users\y1833\AppData\Local\Microsoft\WindowsApps;;D:\idea\IntelliJ IDEA 2020.1.2\bin;;D:\webstrom_project\WebStorm 2019.3.3\bin;;.]
31-Aug-2020 19:40:07.496 淇℃伅 [main] org.apache.coyote.AbstractProtocol.init 鍒濆鍖栧崗璁鐞嗗櫒 ["http-nio-8080"]
31-Aug-2020 19:40:07.626 淇℃伅 [main] org.apache.coyote.AbstractProtocol.init 鍒濆鍖栧崗璁鐞嗗櫒 ["ajp-nio-8009"]
31-Aug-2020 19:40:07.626 淇℃伅 [main] org.apache.catalina.startup.Catalina.load 鏈嶅姟鍣ㄥ湪[359]姣鍐呭垵濮嬪寲
31-Aug-2020 19:40:07.646 淇℃伅 [main] org.apache.catalina.core.StandardService.startInternal Starting service [Catalina]
31-Aug-2020 19:40:07.646 淇℃伅 [main] org.apache.catalina.core.StandardEngine.startInternal 姝e湪鍚姩 Servlet 寮曟搸锛歔Apache Tomcat/9.0.30]
31-Aug-2020 19:40:07.656 淇℃伅 [main] org.apache.coyote.AbstractProtocol.start 寮�濮嬪崗璁鐞嗗彞鏌刐"http-nio-8080"]
31-Aug-2020 19:40:07.666 淇℃伅 [main] org.apache.coyote.AbstractProtocol.start 寮�濮嬪崗璁鐞嗗彞鏌刐"ajp-nio-8009"]
31-Aug-2020 19:40:07.666 淇℃伅 [main] org.apache.catalina.startup.Catalina.start Server startup in [38] milliseconds
Connected to server
[2020-08-31 07:40:07,976] Artifact firstWeb:war exploded: Artifact is being deployed, please wait...
31-Aug-2020 19:40:08.276 璀﹀憡 [RMI TCP Connection(3)-127.0.0.1] org.apache.catalina.util.SessionIdGeneratorBase.createSecureRandom Creation of SecureRandom instance for session ID generation using [SHA1PRNG] took [110] milliseconds.
[2020-08-31 07:40:08,296] Artifact firstWeb:war exploded: Artifact is deployed successfully
[2020-08-31 07:40:08,296] Artifact firstWeb:war exploded: Deploy took 320 milliseconds
31-Aug-2020 19:40:17.666 淇℃伅 [Catalina-utility-1] org.apache.catalina.startup.HostConfig.deployDirectory 鎶妛eb 搴旂敤绋嬪簭閮ㄧ讲鍒扮洰褰� [D:\Apache\tomcat\apache-tomcat-9.0.30\webapps\manager]
31-Aug-2020 19:40:17.705 淇℃伅 [Catalina-utility-1] org.apache.catalina.startup.HostConfig.deployDirectory Deployment of web application directory [D:\Apache\tomcat\apache-tomcat-9.0.30\webapps\manager] has finished in [39] ms

以上就是tomcat出现的中文乱码。

我的IDEA版本是2020.1.2版
tomcat是9.0的

下面是我的解决方案。
第一步:找到help如图

第二步:找到Edit Custom VM Options...,如图
在这里插入图片描述
第三步:在文件中加入-Dfile.encoding=UTF-8后保存

在这里插入图片描述
还没有结束!!!

第四步:清除缓存后重启IDEA(这步很关键,不清除缓存还是乱码)
在这里插入图片描述
重启后效果图:
在这里插入图片描述
注意:路径一定是英文路径!!!!

完美解决~

输出语句控制台中文乱码问题

下面还有一个问题:
我见一个类:

package com.service;

import javax.servlet.*;
import java.io.IOException;

public class MyServlet  implements Servlet {


    @Override
    public void init(ServletConfig servletConfig) throws ServletException {

    }

    @Override
    public ServletConfig getServletConfig() {
        return null;
    }

    @Override
    public void service(ServletRequest servletRequest, ServletResponse servletResponse) throws ServletException, IOException {
    //输出中文字符
        System.out.println("试试");
    }

    @Override
    public String getServletInfo() {
        return null;
    }

    @Override
    public void destroy() {

    }
}

下面是我的配置文件:

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd"
         version="4.0">

        <servlet>
            <servlet-name>MyServlet</servlet-name>
            <servlet-class>com.service.MyServlet</servlet-class>
        </servlet>
    <servlet-mapping>
        <servlet-name>MyServlet</servlet-name>
        <url-pattern>/servlet</url-pattern>
    </servlet-mapping>
</web-app>

然后我直接访问…
出现下面的情况:
在这里插入图片描述
出现这种情况只需要几步就完成。
在这里插入图片描述
第二步:加入-Dfile.encoding=UTF-8
在这里插入图片描述
第三步:重新发布一下项目或者是重写下tomcat就ok
在这里插入图片描述

  • 28
    点赞
  • 58
    收藏
    觉得还不错? 一键收藏
  • 9
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 9
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值