加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

java中文乱码解决之道(七)-----JSP页面编码过程

发布时间:2020-12-13 20:13:29 所属栏目:PHP教程 来源:网络整理
导读:我们知道JSP页面是需要转换为servlet的,在转换进程中肯定是要进行编码的。在JSP转换为servlet进程中下面1段代码起到相当重要的作用。 %@ page language=java contentType=text/html; charset=UTF⑻ pageEncoding=GBK % 在上面代码中有两个地方存在编码:pag

我们知道JSP页面是需要转换为servlet的,在转换进程中肯定是要进行编码的。在JSP转换为servlet进程中下面1段代码起到相当重要的作用。

<%@ page language="java" contentType="text/html; charset=UTF⑻" pageEncoding="GBK" %>

在上面代码中有两个地方存在编码:pageEncoding、contentType的charset。其中pageEncoding是jsp文件本身的编码,而contentType的charset是指服务器发送给客户端时的内容编码。

在前面1篇博客中就提到过(java中文乱码解决之道(4)-----java编码转换进程)jsp在转换为Servlet的进程中是需要经过主要的3次编码转换进程(除去数据库编码转换、页面参数输入编码转换):

第1次:转换为.java文件;

第2次:转换为.class文件;

第3次:业务逻辑处理后输出。

第1阶段

JVM将JSP编译为.jsp文件。在这个进程中pageEncoding就起到作用了,JVM首先会获得pageEncoding的值,如果该值存在则采取它设定的编码来编译,否则则采取file.encoding编码来编译。

第2阶段

JVM将.java文件转换为.class文件。在这个进程就与任何编码的设置都没有关系了,不管JSP采取了甚么样的编码格式都将无效。经过这个阶段后.jsp文件就转换成了统1的Unicode格式的.class文件了。

第3阶段

后台经过业务逻辑处理后将产生的结果输出到客户端。在这个进程中contentType的charset就发挥了功效。如果设置了charset则阅读器就会使用指定的编码格式进行解码,否则采取默许的ISO⑻859⑴编码格式进行解码处理。

流程如以下:


-----原文出自:http://cmsblogs.com/?p=1518,请尊重作者辛苦劳动成果,转载说明出处.

-----个人站点:http://cmsblogs.com

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读