<%@pagecontentType="text"> <%@pagecontentType="text" />
jsp页面显示中文乱码解决

jsp页面显示中文乱码解决

ID:8810212

大小:15.70 KB

页数:4页

时间:2018-04-08

jsp页面显示中文乱码解决_第1页
jsp页面显示中文乱码解决_第2页
jsp页面显示中文乱码解决_第3页
jsp页面显示中文乱码解决_第4页
资源描述:

《jsp页面显示中文乱码解决》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库

1、jsp页面显示中文乱码:jsp页面的编码方式有两个地方需要设置:<%@pagelanguage="java"import="java.util.*"pageEncoding="utf-8"%><%@pagecontentType="text/html;charset=utf-8"%>其中:pageEncoding指的是jsp文件本身在本地保存时的编码方式。contentType的charset是指服务器发送网页内容给客户端时所使用的编码。从第一次访问一个jsp页面开始,到这个页面被发送到客户端,这个Jsp页面要经过三次编码转换:第一阶段是jsp编译成.jav

2、a,它会根据pageEncoding的设定读取jsp,结果是由指定的编码方案翻译成统一的UTF-8JAVA源码(即.java),如果pageEncoding设定错了,或没有设定,出来的就是中文乱码。第二阶段是由JAVAC的JAVA源码至javabyteCode的编译,不论JSP编写时候用的是什么编码方案,经过这个阶段的结果全部是UTF-8的encoding的java源码。JAVAC用UTF-8的encoding读取java源码,编译成UTF-8encoding的二进制码(即.class),这是JVM对常数字串在二进制码(javaencoding)内表达的规范

3、。第三阶段是Tomcat(或其的applicationcontainer)载入和执行阶段二的来的JAVA二进制码,输出的结果,也就是在客户端见到的,这时隐藏在阶段一和阶段二的参数contentType就发挥了功效所以最终的解决方法为:在jsp页面设置pageEncoding或者contentType的其中一个为支持中文的编码格式(如utf-8,gbk,gb2312)。因为设置一个的话,另一个默认会和它一样。如果两个都设置的话,必须保证两个都是支持中文编码(不一定要一样)。最佳建议设置如下:<%@pagelanguage="java"import="java.

4、util.*"pageEncoding="utf-8"%><%@pagecontentType="text/html;charset=utf-8"%>2.post方式传值乱码:由于post方式传值是通过request存储的,在另一个页面也是通过request.getParameter(Stringname)来提取信息,所以这种情况下的乱码主要是因为request存储信息的编码设置导致的。post提交时,如果没有设置提交的编码格式,则会以iso8859-1方式进行提交,接受的jsp却以utf-8的方式接受。所以使用如下语句即可得到单个正确的中文字符串:Stri

5、ngstr=newString(request.getParameter("something").getBytes("ISO-8859-1"),"utf-8");解决方法:在接收页面设置request.setCharacterEncoding("UTF-8")。最好通过过滤器实现每个页面都设置为request.setCharacterEncoding("UTF-8")。3.get方式传值乱码:get方式传值有两种,一种是表单get传值,另一种是url地址传值(实质上这两种方式都是通过url参数的方式传值)。表单方式get传值:表单方式get传值的编码过程为

6、,首先浏览器根据页面的charset编码方式对传值进行编码,然后提交至服务器交给tomcat,tomcat对这些信息进行解码时,采用的解码方式是由server.xml文件中的URIEncoding设置决定的,也就是说,当我们使用命令request.getParameter("")获取表单参数值时,得到的字符串,经过了charset的编码和URIEncoding的解码。由上所知,只要charset的编码和URIEncoding的解码一致,并且支持中文,就能保证没有乱码。设置URIEncoding的方法如下:方法一:修改$TOMCAT/conf/server.x

7、ml文件,在HTTPConnector或者AJPConnector的配置加上URIEncoding="gbk"<...maxThreads="150"minSpareThreads="25"maxSpareThreads="75"enableLookups="false"redirectPort="8443"acceptCount="100"connectionTimeout="20000"disableUploadTimeout="true"URIEncoding="gbk"/>方法二:使用useBodyEncodingForURI="true".这个方法

8、适合你的TOMCAT实例下需要跑多个不同Encodi

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。