下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、java 乱码解决% page language= java import= java.util.* pageeoding= utf-8 % % page contenttype= tt/html;char=utf-8 % 其中:pageencoding 指的是jsp文件本身在本地保存时的编码方式。contenttype的charset是指服务器发送网页内容给客户端时所用法的编码。 从第一次拜访一个jsp页面开头,到这个页面被发送到客户端,这个jsp页面要经过三次编码转换: 第一阶段是jsp编译成.java,它会按照pageencoding的设定读取jsp,结果是由指定的编码计划翻译成统一的u
2、tf-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)内表达的规范。 第三阶段是toat(或其的appliion container)载入和执行阶段二的来的java二进制码,输出的
3、结果,也就是在客户端见到的,这时躲藏在阶段一和阶段二的参数contenttype就发挥了功效 所以终于的解决办法为: 在jsp页面设置pageencoding或者contenttype的其中一个为支持中文的编码 式(如utf-8,gbk,gb2312)。由于设置一个的话,另一个默认会和它一样。 假如两个都设置的话,必需保证两个都是支持中文编码(不一定要一样)。 最佳建议设置如下: % page language= java import= java.util.* pageencoding= utf-8 % % page contenttype= text/html;charset=utf-8
4、% 2. post方式传 乱码: 因为post方式传 是通过request存储的,在另一个页面也是通过request.getparameter(sing name)来提取信息,所以这种状况下的乱码主要是由于request存储信息的编码设置导致的。post提交时,假如没有设置提交的编码 式,则会以iso8859-1方式举行提交,接受的jsp却以utf-8的方式接受。所以用法如下语句即可得到单个正确的中文字符串:string str = new string(request.getparameter( something ).getbytes( iso-8859-1 ), utf-8 ) ; 解决
5、办法: 在接收页面设置request.setcharacterencoding( utf-8 )。最好通过过滤器实现每个页面都设置为request.setcharacterencoding( utf-8 )。 3. get方式传 乱码: get方式传 有两种,一种是表单get传 ,另一种是url地址传 (实质上这两种方式都是通过url参数的方式传 )。 表单方式get传 : 表单方式get传 的编码过程为,首先扫瞄器按照页面的charset编码方式对传 举行编码,然后提交至服务器交给tomcat,tomcat对这些信息举行解码时,采纳的解码方式是由server.xml文件中的uriencodi
6、ng设置打算的,也就是说,当我们用法request.getparameter( )猎取表单参数 时,得到的字符串,经过了charset的编码和uriencoding的解码。 由上所知,只要charset的编码和uriencoding的解码全都,并且支持中文,就能保证没有乱码。 设置uriencoding的办法如下: 办法一: 修改$tomcat/conf/server.xml文件,在http connector或者ajp connector的配置加上uriencoding= gbk . maxthreads= 150 minsparethreads= 25 maxsparethreads= 7
7、5 lookups= fae rirectport= 8443 acceptcount= 100 connectiontimeout= 20000 disableuploadtimeout= true uriencoding= gbk / 办法二: 用法usebodyencodingforuri= true . 这个办法适合你的tomcat实例下需要跑多个不同encoding的程序时。 . maxthreads= 150 minsparethreads= 25 maxsparethreads= 75 enablelookups= false redirectport= 8443 acceptc
8、ount= 100 connectiontimeout= 20000 disableuploadtimeout= true usebodyencodingforuri= true / enablelookups= false redirectport= 8443 proto= ajp/1.3 usebodyencodingforuri= true / 在tomcat配置中,衔接器(http connector)属性中有一个uriencoding和 usebodyencodingforuri属性,这两个属性设置对url后的附加参数举行url解码时该如何挑选 字符集编码。uriencoding用于
9、制定url后的附加参数的字符集编码,usebodyencodingforuri 则解释是否采纳实体内容的字符集编码设置来替代uriencoding的设置,也就是说当 usebodyencodingforuri属性设置为true时servletrequest.setcharacterencoding办法设置的字符集编码也影响getparameter等办法对url地址后的参数举行url解码的结果。(在/%tomcat_home%/ confserver.xml文件中找到 connector 标志,然后在后面加上usebodyencodingforuri=true) url方式get传 乱码: 于这
10、种方式,扫瞄器不会采纳页面的charset方式对url中的中文举行编码后提交至服务器(ie,firefox都一样),而是采纳系统的gbk转码为iso-8859-1之后提交至服务器tomcat,所以这个过程为: 首先,url地址中的中文被从gbk转换成iso-8859-1,交给tomcat后,又被tomcat按照urlecoding解码,这种状况,惟独把urlecoding设置为gbk才干在request.getparameter( )时不浮现乱码。但是这样就会影响到上面的配置,所以一个好的解决办法是,用法.urlecoder和urldecoder对地址中的中文举行手动编码和解码。 所以一个万全
11、的解决办法为: 1.全部页面的charset设置为utf-8。 2.tomcat的uriencoding默认是iso-8859-1,而我设置为utf-8,主要是想解决中文命名的文件以及哀求以get方式提交有可能浮现的乱码问题。 3.添加过滤器,调用request.setcharacterencoding( utf-8 )办法将request的字符集设定为utf-8,解决哀求以post方式提交的乱码问题。 4. url地址中存在中文参数时,首先对中文参数用法urlecoder编码为utf-8,然后在request.getparameter( )接收到参数后再用法urldecoder还原。例如: from.jsp页面: %string username = 张某某 username = urlencoder.encode(username, utf-8 % a href= to.jsp?param= %=username % 转入 /a to.jsp页面 %=urldecoder.decode(request.getparameter( param ), utf-8 )% 总之 ,乱码的解决计划如下: post传 乱码时,在接收端设置request
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 美育润心向美而行-小学美术学科组学期工作总结(2篇)
- AI设计软件工具箱
- 工科一本就业前景展望
- AI在家居中的应用
- 现在跨接连接为什么禁止采用编织软铜线
- 年度消防安全评估指南
- 梧州安全生产培训手册讲解
- 临床巩膜炎疾病健康要点
- AI在首饰设计与制作中的应用
- (正式版)DB22∕T 2709-2017 《鸭绿江茴鱼鱼苗鱼种培育技术规程》
- 2026年安徽省合肥市九年级英语下册期末考试试卷及答案
- 2025中煤航测遥感集团有限公司招聘58人笔试历年参考题库附带答案详解
- 2026年(完整版)教育学原理试题库(附答案)
- 2026温州瓯海全域空间设计咨询有限公司面向社会招聘2人备考题库及答案详解(新)
- 2026贵阳市创业投资有限公司(第一批)对外招聘3人备考题库及一套完整答案详解
- 2024版慢性鼻窦炎诊断和治疗指南课件
- (2026年)妊娠期甲状腺疾病指南解读课件
- 招远社区工作者招考真题及答案2025
- 层流预混火焰
- HY/T 124-2009海籍调查规范
- GB/T 33000-2016企业安全生产标准化基本规范
评论
0/150
提交评论