jsp include标签引入html文件中文乱码问题解决
来源:互联网 发布:wifi满信号网络特别慢 编辑:程序博客网 时间:2024/05/20 11:37
在jsp中使用<%@include file="in.html" %>导入html页面时,如果html页面里有中文,就会产生乱码。检查jsp文件和html文件的编码,编码一致,都是统一使用的utf-8,检查生成的Servlet类文件,发现里面直接就乱码了。
jsp页面内容:
in.html文件内容:生成的Servlet内容:
通过上面生成的Servlet内容可以看出,在将jsp文件编译成Java类这一过程就出现了乱码,问题肯定是编码一致的,而设置编码的有两个:pageEncoding和contentType,这两个属性的区别如下:
pageEncoding是jsp文件本身的编码,是指定web容器将jsp编译成java文件时采用什么编码读取jsp文件。
contentType的charset设置的编码是指服务器发送给客户端时的内容编码。
而客户端访问一个jsp文件要经过如下三个阶段:
1、(第一次访问时)web容器将jsp编译成java文件,这个阶段编译器会根据pageEncoding设置的编码读取jsp文件,翻译成统一的utf-8的Servlet类,如果pageEncoding设置错误或未设置,编译出来的java文件就会出现中文乱码。
2、由javac将java源码编译成class字节码,javac用utf-8编码读取java源码,编译成utf-8编码的二进制文件。3、web容器载入class字节码文件,将内容输出结果到客户端,这一过程内容的编码为contentType设置的编码。
由此可见,是由于pageEncoding设置问题导致翻译jsp时乱码。有两种方式处理:
方法一:在每个引入的html文件设置pageEncoding编码,即在html添加<%@page pageEncoding="UTF-8"%>,尽管html不能识别该指令,但通过include指令引入时该指令就能起作用了,如下:
方法二:在web.xml里统一配置pageEncoding的编码,在web-app标签里添加如下配置:
方法一和方法二原理是一样的,都是通过设置pageEncoding编码来指定jsp将html文件include时使用的编码。方法一和方法二任选一种即可,如果同时使用需要注意两个地方设置的pageEncoding编码必须一致,否则将会报如下编码不一致的错误:
- jsp include标签引入html文件中文乱码问题解决
- jsp include标签引入html文件中文乱码问题解决
- jsp里include html文件中文乱码
- 关于jsp include html文件导致中文乱码的问题
- JSP include 引入页面文件乱码 解决办法
- jsp include中文乱码问题解决方案
- jsp中include html中文乱码问题
- JSP HTML 各种 乱码 解决方法|jsp include html乱码|include 乱码|MyEclipse 中文乱码
- jsp用include指令引入html时的乱码问题
- jsp用include指令引入html时的乱码问题
- jsp用include指令引入html时的乱码问题
- jsp通过include指令引入html乱码的解决方法
- jsp通过include指令引入html乱码的解决方法
- jsp通过include指令引入html乱码的解决方法
- jsp通过include指令引入html乱码的解决方法
- jsp通过include指令引入html乱码的解决方法
- jsp:include html文件乱码的解决办法
- jsp:include html文件乱码的解决办法
- C语言输入一个数,倒序输出
- [POI2000] 最长公共子串
- Oracle 增加修改删除字段
- Java中instanceof和isInstance区别详解
- kNN与KD-Tree
- jsp include标签引入html文件中文乱码问题解决
- 卷积神经网络池化层和卷积层作用
- c++关键字
- 无监督学习与GAN网络
- WebSocket 是什么原理?为什么可以实现持久连接
- Java复习之字符串流
- 自定义UINavgationBar的高度
- Rancher 容器实战分享季之杭州站精彩回顾
- 初学python:边学边练,定义函数