Tomcat的静态报错页面中文乱码怎么解决

问题遇到的现象和发生背景

准备重新拾起JavaWeb,今天就下载了Tomcat10;
然后试着写了几个简单的jsp网页输出,途中也遇到了控制台输出的乱码问题,后来也解决了;
然后有个问题就是报错后,Tomcat 跳转到 HTTP状态 500 - 内部服务器错误 网页,、;
这里的页面会显示我的jsp里的 java 代码;
我看输出的中文部分是乱码;

问题相关代码,请勿粘贴截图
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <meta charset="UTF-8">
    <title>MyJSP</title>
</head>
<body>
    <%
        for ( int i = 1; i <= 10; i++){
            out.print ( i + ":欢迎来到本系统!<br>" );
        }
    %>
    <% out.print ( str ); %>
    <br>
    <% !
        String str = "HELLO! ";
    %>
</body>
</html>
运行结果及报错内容

jsp页面编码是 UTF-8;
然后这乱码是 GBK;

img

img

我的解答思路和尝试过的方法

也试着百度了;

  1. 在Tomcat conf 目录下的 server.xml 和 web.xml 文件也都照着添加/修改了UTF-8;
<!-- server.xml -->
    <Connector port="8080" protocol="HTTP/1.1"
               connectionTimeout="20000"
               redirectPort="8443" 
               URIEncoding="UTF-8" />

<!-- web.xml -->
        <init-param>
            <param-name>encoding</param-name>
            <param-value>UTF-8</param-value>
        </init-param>
  1. 在 bin 目录下的 catalina.bat 文件中添加了 -Dfile.encoding=UTF8 -Dsun.jnu.encoding=UTF8;
  2. 由于用的是IntelliJ 也试着更改了全局的编码;
    但是这些试了都没用
    我想要达到的结果
    就有没有遇到过同样问题的小伙伴,能不能说下该怎么解决
    尽管没什么大影响,但就算是个强迫症吧

你改了idea全局编码没有用的,你要将当前项目编码改了,都统一一下改成utf-8,file-->settings搜索File Encodings

img

在idea中点击项目,看看项目的编码是否是GBK。

你的代码也有问题啊,str放错位置了

好了解决了,错误页面好像是根据jsp网页编码进行读取的,jsp页面字符集设定的是 UTF-8,改成 GBK 就没乱码了,
现在的问题就是怎么配置 Tomcat 让它编码为 UTF-8 而不是 GBK 了