知识大全 JSP中文编码问题解决方法详解

Posted

篇首语:最聪明的处世之术是,既对世俗投以白眼,又与其同流合污。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 JSP中文编码问题解决方法详解相关的知识,希望对你有一定的参考价值。

JSP中文编码问题解决方法详解  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!

  

  最基本的乱码问题

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

  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 />

cha138/Article/program/Java/hx/201311/25982

相关参考

知识大全 jsp中文页面乱码与传参乱码

  页面乱码  这种乱码的原因是应为没有在页面里指定使用的字符集编码解决方法只要在页面开始地方用下面代码指定字符集编码即可代码如下   <%@pagecontentType="text

知识大全 如何解决html网页编码导致jsp页面乱码

  页面中这段不起眼的代码<metaequiv="ContentType"content="text/;charset=GBK">错把如果charset=GBK设置为charset=UTF

知识大全 JSP连接sybase数据库中文显示问题如何解决

JSP连接sybase数据库中文显示问题如何解决  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  

知识大全 Tomcat服务器下JSP页中文问题解决方法

Tomcat服务器下JSP页中文问题解决方法  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  目前

知识大全 解决JSP开发Web程序中的中文问题[1]

解决JSP开发Web程序中的中文问题[1]  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 

知识大全 解决JSP开发Web程序中的中文问题[2]

解决JSP开发Web程序中的中文问题[2]  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 然后再w

知识大全 JSP+ MySQL中文乱码问题post提交乱码解决方案

JSP+MySQL中文乱码问题post提交乱码解决方案  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧

知识大全 Jsp传递中文参数详解

Jsp传递中文参数详解  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  目前在jsp页面中传递中文

知识大全 JSP中的汉字编码问题

JSP中的汉字编码问题  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  网上就JSP/Servle

知识大全 文件编码导致jquery失效的解决方法

cha138/Article/program/Java/JSP/201311/19986