You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Tomcat服务器HTML文件UTF-8编码乱码问题求助

解决方法

1. 完善JSP Servlet的编码参数配置

你将HTML文件通过jsp-file映射为JSP Servlet处理,但仅设置encoding参数不够,需补充响应编码相关参数:

<servlet>
    <servlet-name>if</servlet-name>
    <jsp-file>/if.html</jsp-file>
    <init-param>
        <param-name>encoding</param-name>
        <param-value>UTF-8</param-value>
    </init-param>
    <init-param>
        <param-name>pageEncoding</param-name>
        <param-value>UTF-8</param-value>
    </init-param>
    <init-param>
        <param-name>contentType</param-name>
        <param-value>text/html;charset=UTF-8</param-value>
    </init-param>
</servlet>

pageEncoding指定JSP引擎读取文件的编码,contentType明确响应的内容类型和编码。

2. 取消HTML的JSP映射,用静态文件方式处理

若无需JSP引擎解析HTML,直接删除web.xml中该servlet映射。Tomcat默认处理静态HTML时,会读取文件的编码声明,只要文件本身以UTF-8保存,就能正常显示。

3. 确认HTML文件的实际保存编码

在IntelliJ中右键if.html → 选择「File Encodings」,确保文件编码设为UTF-8,并勾选「Transparent native-to-ascii conversion」,避免保存时编码转换出错。

4. 配置Tomcat全局静态资源编码

打开Tomcat安装目录下的conf/web.xml,找到default Servlet,添加fileEncoding初始化参数:

<servlet>
    <servlet-name>default</servlet-name>
    <servlet-class>org.apache.catalina.servlets.DefaultServlet</servlet-class>
    <!-- 保留原有参数 -->
    <init-param>
        <param-name>fileEncoding</param-name>
        <param-value>UTF-8</param-value>
    </init-param>
</servlet>

该配置会让Tomcat处理所有静态文件时默认使用UTF-8编码读取。


内容的提问来源于stack exchange,提问作者beingicy

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.30 01:07:50