pageEncoding和contentType编码作用和区别详解

pageEncoding和contentType都用于定义字符编码,两者有什么区别?相信不少初学者都会有疑惑,今天中国网页设计给大家详细解读两者的区别,pageEncoding和contentType都在什么时候起作用。

pageEncoding和contentType语法格式

<%@ page contentType=”text/html;charset=utf-8″ %>

<%@ page  pageEncoding=”GBK”%>

<%@ page contentType=”text/html;charset=utf-8″ pageEncoding=”GBK”%>

pageEncoding和contentType区别

pageEncoding是jsp文件本身的编码

contentType的charset是指服务器发送给客户端时的内容编码

pageEncoding和contentType执行过程

JSP要经过两次的“编码”:

第一阶段会用pageEncoding,第二阶段会用utf-8至utf-8,第三阶段就是由Tomcat出来的网页, 用的是contentType。

第一阶段是jsp编译成java

它会根据pageEncoding的设定读取jsp,结果是由指定的编码方案翻译成统一的UTF-8 JAVA源码(即.java),如果pageEncoding设定错了,或没有设定,出来的就是中文乱码。

第二阶段是由JAVAC的JAVA源码至java byteCode的编译

不论JSP编写时候用的是什么编码方案,经过这个阶段的结果全部是UTF-8的encoding的java源码。
JAVAC用UTF-8的encoding读取java源码,编译成UTF-8 encoding的二进制码(即.class),这是JVM对常数字串在二进制码(java encoding)内表达的规范。

第三阶段是Tomcat(或其的application container)载入和执行阶段二的来的JAVA二进制码输出的结果,也就是在客户端见到的,这时隐藏在阶段一和阶段二的参数contentType就发挥了功效

pageEncoding 和contentType的预设都是 ISO8859-1.

pageEncoding和contentType使用举例

<%@ page contentType=”text/html;charset=utf-8″ %>

大都会打印出乱码,因为输入的“你好”是gbk的,但是服务器是否正确抓到“你好”不得而知。
但是如果更改为

<%@ page contentType=”text/html;charset=utf-8″ pageEncoding=”GBK”%>

这样就服务器一定会是正确抓到“你好”了。

125jz网原创文章。发布者:江山如画,转载请注明出处:http://www.125jz.com/11157.html

(0)
江山如画的头像江山如画管理团队
上一篇 2022年11月23日 下午6:11
快速排序基本思想、实例讲解及Java实现代码
下一篇 2022年12月1日 上午11:03

99%的人还看了以下文章

  • 第三章 JSP技术2:JSP的内置对象及使用

    内置对象:为简化Web页面的开发过程,JSP提供了一些内置对象,这些对象不用声明就可以在JSP页面中直接使用,是JSP引擎自动创建的Java类实例。
    request对象
    response对象
    out对象
    session对象
    application对象

    2018年2月2日
    2.9K0
  • createStatement参数详解,带参数与不带参数的区别

    Connection接口的createStatement方法,可用来创建向数据库发送SQL语句的对象,用于执行SQL语句。 常用代码: Statement stmt = con.createStatement(); Statement stmt = con.createStatement (int resultSetType,int resultSetCon…

    2018年10月23日
    9.9K0
  • 推荐!学Python编程买什么样的电脑?(电脑配置清单)

    推荐!学Python编程买什么样的电脑?(电脑配置清单)推荐!学Python编程买什么样的电脑?(电脑配置清单)推荐!学Python编程买什么样的电脑?(电脑配置清单)推荐!学Python编程买什么样的电脑?(电脑配置清单)

    推荐购买台式机,性价比高于笔记本电脑。 当然对不差钱的可以买笔记本电脑,毕竟方便携带。 对于笔记本电脑: 推荐购买标准电压CPU的电脑(例如:第12代i7-12700H),H表示标准电压。 内存建议16G或以上 C盘建议固态硬盘256g以上 D盘建议1T以上(建议采用”内置“”固态硬盘+机械硬盘“的计算机,固态硬盘速度极快,用于运行系统和软件,机械硬盘空间大…

    2023年1月26日 编程开发
    10.4K0
  • python 循环语句的应用:水仙花数判断及爱因斯坦阶梯编程

    一、水仙花数判断程序 1.任务内容: 水仙花数是一个三位整数,如153是一个水仙花数,是因为该数的百位的立方、十位的立方、个位的立方和等于该数本身,如下所示: 2.程序编写要求: 使用for语句完成; 统计水仙花数个数的值保存到变量中,要求自动进行统计 •输出结果如下所示: 153 是水仙数370 是水仙数371 是水仙数407 是水仙数三位数中有4个水仙数…

    2022年5月11日
    9.8K1
  • 精!如何在IDEA中导入myeclipse项目、配置并运行(实例演示)

    精!如何在IDEA中导入myeclipse项目、配置并运行(实例演示)精!如何在IDEA中导入myeclipse项目、配置并运行(实例演示)精!如何在IDEA中导入myeclipse项目、配置并运行(实例演示)精!如何在IDEA中导入myeclipse项目、配置并运行(实例演示)

    125建站网站长原来开发的myeclipse项目直接在IDEA打开发现会有很多问题,根据解决过程,写出此文章供大家参考! 1.首先打开IDEA工具,选择导入项目,然后在弹出的窗口中选择要打开的myeclipse文件,然后点击确定。如图所示 2.选择Eclipse,然后一直下一步 3.正常我们SDK这里都配置好了,直接选择就好,然后完成项目的导入 4.导入的完…

    2023年2月3日 编程开发
    8.1K0
  • 上机四 数据库访问技术

    上机四  数据库访问技术上机四  数据库访问技术上机四  数据库访问技术上机四  数据库访问技术

    2学时 一、数据库编程案例:读取数据库信息并显示 数据库员工信息表字段如下: 使用JDBC连接数据库,读取employee表中信息并显示到页面。 mysql驱动下载:mysql-connector-java-5.1.41-bin.zip 注意事项:将驱动程序mysql-connector-java-5.1.6-bin,拷贝到Web应用程序的WEB-INF\l…

    2018年10月16日 编程开发
    8.8K0

发表回复

登录后才能评论