记 jsp文件在使用include引入html、txt文件时出现的中文乱码问题解决方法

引入

在编写jsp文件时,会用到include指令来向当前页面引入其他文件。经过实测发现当引入的文件是jsp文件时使用下面的语句设置编码格式即可。

<%@ page language="java" contentType="text/html; charset=utf-8"%>

但是当引入的文件是html、txt文件时,如果文件中含有中文就会显示中文乱码,我在遇到该问题时试了网上的很多方法,但是这些方法都没有解决问题。后来我摸索后总结出了下面两个方法,第一个方法简单快捷,第二个方法莫名其妙。着急解决的可以直接看第一个方法,有兴趣的可以看看第二个方法。


方法一:

找到项目路径下的WEB-INF目录,该目录下有一个web.xml文件,进入该文件然后把下面的代码粘贴进去。

    <jsp-config>
        <jsp-property-group>
            <url-pattern>*.html</url-pattern>
            <page-encoding>UTF-8</page-encoding>
        </jsp-property-group>
        <jsp-property-group>
            <url-pattern>*.txt</url-pattern>
            <page-encoding>UTF-8</page-encoding>
        </jsp-property-group>
    </jsp-config>

像下面这样就行:

该代码就是把所有以.html和.txt结尾的文件的默认页面编码都设置为UTF-8。

方法二:

使用Notepad++等文本编辑器设置文件的编码格式不为utf-8,对就是不设为utf-8编码!我试了转为ANSI、UTF-8-BOM、UCS-2 Big Endian、UCS-2 Little Endian等我也不知道是啥的编码,运行后都没有中文乱码,但是转为utf-8编码运行时就会有中文乱码,这就是方法二莫名其妙的原因,我也不知道其中的原理是啥。


结语

总之按照这两种方法我都试过了,都可以解决引入html、txt文件时中文乱码的问题。对于原理我的理解是可能jsp在使用include指令引入文件时对于html、txt文件的默认编码格式不是utf-8所以就不能识别中文,如果是引入jsp文件的话可以用page指令设置其编码格式,但是html、txt不能使用page指令,只能用方法一来设置。至于方法二,原理我也没有搞懂,如果有懂得大佬欢迎在评论区分享。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值