java中文乱码解决之道(七)—–JSP页面编码过程
浏览:1089次 出处信息
我们知道JSP页面是需要转换为servlet的,在转换过程中肯定是要进行编码的。在JSP转换为servlet过程中下面一段代码起到至关重要的作用。
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="GBK" %>
在上面代码中有两个地方存在编码:pageEncoding、contentType的charset。其中pageEncoding是jsp文件本身的编码,而contentType的charset是指服务器发送给客户端时的内容编码。
在前面一篇博客中就提到过(java中文乱码解决之道(四)—-java编码转换过程)jsp在转换为Servlet的过程中是需要经过主要的三次编码转换过程(除去数据库编码转换、页面参数输入编码转换):
第一次:转换为.java文件;
第二次:转换为.class文件;
第三次:业务逻辑处理后输出。
第一阶段
JVM将JSP编译为.jsp文件。在这个过程中pageEncoding就起到作用了,JVM首先会获取pageEncoding的值,如果该值存在则采用它设定的编码来编译,否则则采用file.encoding编码来编译。
第二阶段
JVM将.java文件转换为.class文件。在这个过程就与任何编码的设置都没有关系了,不管JSP采用了什么样的编码格式都将无效。经过这个阶段后.jsp文件就转换成了统一的Unicode格式的.class文件了。
第三阶段
后台经过业务逻辑处理后将产生的结果输出到客户端。在这个过程中contentType的charset就发挥了功效。如果设置了charset则浏览器就会使用指定的编码格式进行解码,否则采用默认的ISO-8859-1编码格式进行解码处理。
流程如如下:
建议继续学习:
- 字符编码和中文乱码小叙 (阅读:5703)
- 中文编码杂谈 (阅读:4988)
- Hadoop的map/reduce作业输入非UTF-8编码数据的处理原理 (阅读:4666)
- PHP编码规范 (阅读:4406)
- windows下压缩包在linux解压乱码的解决办法 (阅读:4226)
- base64_encode 和 urlencode (阅读:4130)
- UTF-8编码中BOM的检测与删除 (阅读:4083)
- Linux screen窗口中文乱码问题 (阅读:4008)
- Unicode与字符汉字相互转换 (阅读:3979)
- python-django的中文编码总结 (阅读:3846)
QQ技术交流群:445447336,欢迎加入!
扫一扫订阅我的微信号:IT技术博客大学习
扫一扫订阅我的微信号:IT技术博客大学习
后一篇:java中文乱码解决之道(八)—–解决URL中文乱码问题 >>
文章信息
- 作者:chenssy 来源: cmsblogs-chenssy
- 标签: JSP 乱码 编码
- 发布时间:2015-02-26 22:41:33
建议继续学习
近3天十大热文
- [69] Twitter/微博客的学习摘要
- [67] IOS安全–浅谈关于IOS加固的几种方法
- [65] android 开发入门
- [65] 如何拿下简短的域名
- [63] find命令的一点注意事项
- [62] Go Reflect 性能
- [61] 流程管理与用户研究
- [60] Oracle MTS模式下 进程地址与会话信
- [59] 图书馆的世界纪录
- [57] 读书笔记-壹百度:百度十年千倍的29条法则