本站首页    管理页面    写新日志    退出


«April 2026»
1234
567891011
12131415161718
19202122232425
2627282930


公告
暂无公告...

我的分类(专题)

日志更新

最新评论

留言板

链接

Blog信息
blog名称:
日志总数:29
评论数量:19
留言数量:0
访问次数:119467
建立时间:2006年5月29日




[java与中文]乱码问题(七)
软件技术

krf301 发表于 2007/4/16 22:10:33

按照jsp规范防止乱码                                       举个例子: 12 <%@ page contentType="text/html;charset=utf-8" %> 你好吗? resin等服务器大都会打印出乱码(tomcat除外),但是如果更改为 12 <%@ page contentType="text/html;charset=utf-8" pageEncoding="GBK"%> 你好吗? 这样就服务器一定会是正确抓到“你好吗”了。 关于 contentType 和 pageEncoding 的差异 和 中文JSP页的设定技巧: contentType -- 指定的是JSP页最终 Browser(客户端)所见到的网页内容的编码. 就是 Mozilla的 Character encoding, 或者是 IE6的 encoding. 例如 JSPtw Forum 用的contentType就是 Big5. pageEncoding -- 指定JSP编写时所用的编码 如果你的是WIN98, 或 ME 的NOTEPAD记事本编写JSP, 就一定是常用的是Big5 或 gb2312, 如果是用 WIN2k winXP的NOTEPAD时, SAVE时就可以选择不同的编,码, 包括 ANSI(BIG5/GB2312)或 UTF-8 或 UNIONCODE(估是 UCS 16). 因为 JSP要经过 两次的"编码", 第一阶段会用 pageEncoding, 第二阶段会用 utf-8 至utf-8, 第三阶段就是由TOMCAT出来的网页, 用的是contentType. 阶段一是 JSPC的 JSP至JAVA(.java)原码的"翻译", 它会跟据 pageEncoding 的设定读取JSP. 结果是 由指定的 pageEncoding(utf-8,Big5,gb2312)的JSP 翻译成统一的utf-8 JAVA原码(.java). 如果pageEncoding设定错了, 或没设定(预设 ISO8859-1), 出来的 在这个阶段 就已是中文乱码. 阶段二是由 JAVAC的JAVA原码至JAVA BYTECODE的编译. 不论JSP的编写时是用(utf-8,Big5,gb2312),经过阶段一的结果全都是utf-8的ENCODING的JAVA原码. JAVAC用 utf-8的ENCODING读取AVA原码, 编译成字符串是 utf-8 ENCODING的二进制码(.class). 这是 JAVA VIRTUAL MACNHINE 对常数字符串在 二进制码(JAVA BYTECODE)内表逹的规范. 阶段三是TOMCAT(或其的application container)加载和执行 阶段二得来的JAVA二进制码, 输出的结果( 也就是BROWSER(客户端)) 见到的. 这时一早隐藏在阶段一和二的参数contentType, 就发挥了功效. (见 阶段一的 1  response.setContentType("text/html; charset=UTF-8"); ). 出来的可以是 utf-8, Big5, gb2312, 看的就是JSP 1 <%@ page session="false" pageEncoding="big5" contentType="text/html; charset=UTF-8" %> ? contentType的设定. **还有, pageEncoding 和contentType的预设都是 ISO8859-1. 而随便设定了其中一个, 另一个就跟着一样了(TOMCAT4.1.27是如此). 但这不是绝对, 看的各自JSPC的处理方式. 而pageEncoding不等于contentType, 更有利亚洲区的文字 CJKV系JSP网页的开发和展示, (例pageEncoding=Big5 不等于 contentType=utf-8). 小结:为了能使应用兼容多服务器,应按照jsp标准。对于编码问题统一使用 1 <%@ page contentType="text/html;charset=UTF-8" pageEncoding="UTF-8"%>


阅读全文(1115) | 回复(0) | 编辑 | 精华
 



发表评论:
昵称:
密码:
主页:
标题:
验证码:  (不区分大小写,请仔细填写,输错需重写评论内容!)



站点首页 | 联系我们 | 博客注册 | 博客登陆

Sponsored By W3CHINA
W3CHINA Blog 0.8 Processed in 0.484 second(s), page refreshed 144821626 times.
《全国人大常委会关于维护互联网安全的决定》  《计算机信息网络国际联网安全保护管理办法》
苏ICP备05006046号