- 1、本文档共8页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
jsp页面乱码问题解决jsp页面乱码问题解决
JSP页面乱码详解
(2012-07-31 21:37:32)
转载▼
标签:
it 一、jsp页面显示中文乱码:
jsp页面的编码方式有两个地方需要设置:
%@ page language=java import=java.util.* pageEncoding=utf-8%
%@ page contentType=text/html;charset=utf-8%
其中:pageEncoding 指的是jsp文件本身在本地保存时的编码方式。contentType的charset是指服务器发送网页内容给客户端时所使用的编码。
从第一次访问一个jsp页面开始,到这个页面被发送到客户端,这个Jsp页面要经过三次编码转换:
第一阶段是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就发挥了功效
所以最终的解决方法为:
在jsp页面设置pageEncoding或者contentType的其中一个为支持中文的编码格式(如utf-8,gbk,gb2312)。因为设置一个的话,另一个默认会和它一样。
如果两个都设置的话,必须保证两个都是支持中文编码(不一定要一样)。
最佳建议设置如下:
%@ page language=java import=java.util.* pageEncoding=utf-8%
%@ page contentType=text/html;charset=utf-8%
二、 post方式传值乱码:
由于post方式传值是通过request存储的,在另一个页面也是通过request.getParameter(String name)来提取信息,所以这种情况下的乱码主要是因为request存储信息的编码设置导致的。post提交时,如果没有设置提交的编码格式,则会以iso8859-1方式进行提交,接受的jsp却以utf-8的方式接受。所以使用如下语句即可得到单个正确的中文字符串:String str = new String(request.getParameter(something).getBytes(ISO-8859-1),utf-8) ;
解决方法:
在接收页面设置request.setCharacterEncoding(UTF-8)。最好通过过滤器实现每个页面都设置为request.setCharacterEncoding(UTF-8)。
三、get方式传值乱码:
get方式传值有两种,一种是表单get传值,另一种是url地址传值(实质上这两种方式都是通过url参数的方式传值)。
表单方式get传值:
表单方式get传值的编码过程为,首先浏览器根据页面的charset编码方式对传值进行编码,然后提交至服务器交给tomcat,tomcat对这些信息进行解码时,采用的解码方式是由server.xml文件中的URIEncoding设置决定的,也就是说,当我们使用命令request.getParameter()获取表单参数值时,得到的字符串,经过了charset的编码和URIEncoding的解码。
由上所知,只要charset的编码和URIEncoding的解码一致,并且支持中文,就能保证没有乱码。
设置URIEncoding的方法如下:
方法一:
修改$TOMCAT/conf/server.xml文件,在HTTP Connector或者AJP Connector的配置加上URIEncoding=gbk
... maxThre
您可能关注的文档
- JAVA实习生管理系统JAVA实习生管理系统.doc
- java基础测试题(二)java基础测试题(二).doc
- JAVA实习库管理JAVA实习库管理.doc
- java实验二学生java实验二学生.doc
- Java实验报告Java实验报告.doc
- java大实验报告java大实验报告.doc
- Java实验报告册Java实验报告册.doc
- Java实验报告三模板Java实验报告三模板.doc
- Java实验指导Java实验指导.doc
- Java工程路径的问题Java工程路径的问题.doc
- 甘肃省肃州区2024年《一级注册建筑师之建筑物理与建筑设备》考试必背100题大全(典型题).docx
- 甘肃省西和县2024年《一级注册建筑师之建筑物理与建筑设备》考试必背100题真题题库加解析答案.docx
- 甘肃省肃州区内部使用《一级注册建筑师之建筑物理与建筑设备》资格考试必背100题完整版带答案(考试直接.docx
- 小学六年级下册数学 期末测试卷附答案(巩固).docx
- 甘肃省肃州区历年《一级注册建筑师之建筑物理与建筑设备》考试必刷100题通关秘籍题库(精练).docx
- 甘肃省肃州区内部使用《一级注册建筑师之建筑物理与建筑设备》资格考试必背100题完整版带答案(考试直接.docx
- 甘肃省肃州区内部使用《执业药师之西药学专业一》考试必刷200题题库附答案【完整版】.docx
- 甘肃省肃州区2024年《一级注册建筑师之建筑物理与建筑设备》考试大全(典型题).docx
- 甘肃省肃州区2024《一级注册建筑师之建筑物理与建筑设备》资格考试通关秘籍题库(达标题).docx
- 小学六年级下册数学 期末测试卷附完整答案(夺冠系列).docx
文档评论(0)