JSP中文编码问题解决方法详解

JSP中文编码问题解决方法详解,第1张

最基本的乱码问题

这个乱码问题是最简单的乱码问题 一般新会出现 就是页面编码不一致导致的乱码

Html代码

<%@ page language= java pageEncoding= UTF %>  <%@ page contentType= text/charset=iso %>  <>  <head>  <title>中文问题</title>  <meta equiv= Content Type content= text/charset=UTF >  </head>  </head>  <body>  我是个好人  </body>  </> 

三个地方的编码

第一个地方的编码格式为jsp文件的存储格式 Ecljpse会根据这个编码格式保存文件 并编译jsp文件 包括里面的汉字

第二处编码为解码格式 因为存为UTF 的文件被解码为iso 这样如有中文肯定出乱码 也就是必须一致 而第二处所在的这一行 可以没有 缺省也是使用iso 的编码格式 所以如果没有这一行的话 我是个好人 也会出现乱码 必须一致才可以

第三处编码为控制浏览器的解码方式 如果前面的解码都一致并且无误的话 这个编码格式没有关系 有的网页出现乱码 就是因为浏览器不能确定使用哪种编码格式 因为页面有时候会嵌入页面 导致浏览器混淆了编码格式 出现了乱码

表单使用Post方式提交后接收到的乱码问题

这个问题也是一个常见的问题 这个乱码也是tomcat的内部编码格式iso 在捣乱 也就是说post提交时 如果没有设置提交的编码格式 则会以iso 方式进行提交 接受的jsp却以utf 的方式接受 导致乱码 既然这样的原因 下面有几消笑扰种解决方式 并比较

a 接受参数时进行编码转换

String str = new String(request getParameter( something ) getBytes( ISO ) utf )

这样的话 每一个参数都必须这样进行转码 很麻烦 但确实可以拿到汉字

b 在请求页面上开始处 执行请求的编码代升局码

request setCharacterEncoding( UTF )

把提交内容的字符集设为UTF- 这样的话 接受此参数的页面就不必在转码了 直接使用

String str = request getParameter( something )

即可得到汉字参数 但每页都需要执行这句话 这个方法也就对post提交的有效果 对于get提交和上传文件时的enctype= multipart/form data 是无效的 稍后下面单独对这个两个的乱码情况再进行说明

c 为了避免每页都要写request setCharacterEncoding( UTF ) 建议使用过滤器对所有jsp进行编码处理 这个网上有很多例子 请大家自己查阅

表单get提交方式的乱码处理方式

如果使用get方式提交中文 接受参数的页面也会出现乱码 这个乱码的原因也是tomcat的内部编码格式iso 导致 Tomcat会以get的缺省编码方式iso 对汉字进行编码 编码后追加到url 导致接受页面得到的参数为乱码/

解决办法

a 使用上例中的第一种方式拿旦 对接受到的字符进行解码 再转码

b Get走的是url提交 而在进入url之前已经进行了iso 的编码处理 要想影响这个编码则需要在server xml的Connector节点增加useBodyEncodingForURI= true 属性配置 即可控制tomcat对get方式的汉字编码方式 上面这个属性控制get提交也是用request setCharacterEncoding( UTF )所设置的编码格式进行编码 所以自动编码为utf 接受页面正常接受就可以了 但我认为真正的编码过程是 tomcat又要根据

<Connector port= maxThreads= minSpareThreads= maxSpareThreads= enableLookups= false redirectPort= acceptCount= debug= connectionTimeout= useBodyEncodingForURI= true disableUploadTimeout= true URIEncoding= UTF />

lishixinzhi/Article/program/Java/hx/201311/25982

将文字编盯哪成数码。编码机制就是用预先规定的方法凯碧码将文字、数字或其它对象编成数码,所以在jsp文件中的汉字编码机制为将文字编成数慧雀码。JSP是由Sun Microsystems公司主导创建的一种动态网页技术标准。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/tougao/12269590.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-24
下一篇 2023-05-24

发表评论

登录后才能评论

评论列表(0条)

保存