JSP页面的ContentType和pageEncoding的差异

contentType -- 指定的是JSP页最终 Browser(客户端)所见到的网页内容的编码.就是 Mozilla Character encoding, 或者是 IE6 encoding. 例如 JSPtw Forum 用的contentType就是 Big5.

pageEncoding -- 指定JSP编写时所用的编码 
如果你的是 WIN98,  ME NOTEPAD记事本编写JSP, 就一定是常用的是Big5  gb2312, 如果是用 WIN2k winXPNOTEPAD, SAVE时就可以选择不同的编,包括 ANSI(BIG5/GB2312) UTF-8  UNIONCODE(估是 UCS 16).

因为 JSP要经过 两次的"编码", 
第一阶段会用 pageEncoding, 第二阶段会用 utf-8 utf-8, 第三阶段就是由TOMCAT出来的网页用的是contentType.

阶段一是 JSPC JSPJAVA(.java)原码的"翻译", 它会跟据 pageEncoding 的设定读取JSP. 结果是 由指定的pageEncoding(utf-8,Big5,gb2312)JSP 翻译成统一的utf-8 JAVA原码(.java). 如果pageEncoding设定错了或没设定 (预设 ISO8859-1), 出来的 在这个阶段 就已是中文乱码

阶段二是由 JAVACJAVA原码至JAVA BYTECODE的编译不论JSP的编写时是用(utf-8,Big5,gb2312),经过阶段一的结果全是utf-8ENCODINGJAVA源.

JAVAC utf-8ENCODING读取jAVA原码编译成字符串是 utf-8 ENCODING的二进制码(.class). 这是 JAVA VIRTUAL MACNHINE
对常数字符串在 二进制码(JAVA BYTECODE)内表逹的规范.

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

response.setContentType("text/html; charset=utf-8");

出来的可以是 utf-8, Big5, gb2312, 看的就是JSP ? contentType的设定.

<%@ page session="false" pageEncoding="big5" contentType="text/html; charset=utf-8" %>

还有, pageEncoding contentType的预设都是 ISO8859-1. 而随便设定了其中一个另一个就跟着一样了(TOMCAT4.1.27是如此).但这不是绝对看的各自JSPC的处理方式pageEncoding不等于contentType, 更有利亚洲区的文字 CJKVJSP网页的开发和展示,

(pageEncoding=Big5 不等于 contentType=utf-8).

一个简单的解决方法是在包含和被包含文件的开始部分都加上:

<%@ page contentType="text/html;charset=GB2312" language="java" %>

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值