例: <pg:param name="Name_firstleaveCityName"/>
     <pg:param name="HotelName"/>
Name_firstleaveCityName和HotelName 都为中文,传到后台出现乱码。
请教高手,帮忙解决!!!

解决方案 »

  1.   

    添加一个过滤器,可以参照Spring的编码过滤器,或者直接就用它,3.0+的在web包里
      

  2.   

    原理剖析:
    服务器是tomcat默认使用的编码是IOS-8859-1.页面使用的编码格式是GBK,那么在提交的时候GBK编码的数据经过服务器(ISO-8859-1)编译之后变成了乱码.这个时候我们需要把接收到的数据,先使用ISO-8859-1解析回来得到字节数据,再使用页面的编码格式GBK去这里这个字节数据,得到正确的中文.所以需要先将得到"字符"(不管是什么)都先用字节数组表示,且使用ISO-8859-1进行翻译,得到一个在ISO-8859-1编码环境下的字节数组.例如:AB表示成[64,65].然后再用GBK编码这个数组,并翻译成一个字符串. 那么我们可以得到一个编码转换的过程 
    假设:GBK码("你")->URLencode后变成->(%3F%2F)->Tomcat自动替你转一次ISO-8859-1->得到( 23 43 68 23 42 68 每一个符号表示为ISO-8859-1中的一个编码)->接收页面--->再转一次为ISO-8859-1的Byte数组[23,43,68,23,42,68]--->用GBK再转为可读的文字--->(%3F%2F"---->转为("你") 解决办法:
    utf8解决JSP中文乱码问题
    一般说来在每个页面的开始处,加入:以下是引用片段:
    <%@ page language="java" contentType="text ml; charset=UTF-8" 
    pageEncoding="UTF-8"%> 
    <% 
    request.setCharacterEncoding("UTF-8"); 
    %> 
    charset=UTF-8 的作用是指定JSP向客户端输出的编码方式为“UTF-8”
    pageEncoding="UTF-8" 为了让JSP引擎能正确地解码含有中文字符的JSP页面,这在LINUX中很有效
    request.setCharacterEncoding("UTF-8"); 是对请求进行了中文编码
    有时,这样仍不能解决问题,还需要这样处理一下:
    String msg = request.getParameter("message");
    String str=new String(msg.getBytes("ISO-8859-1"),"UTF-8");
    out.println(st);乱码问题确实令人头疼,因为有时候它称不上问题,具体问题错在哪更难于发问,知其原理比较好一点,
    有时候如果仍然无法解决,可以使一招必杀术:放到session里面传,记得取得参数的时候清除下,不要觉得
    这种做法很落后,解决问题完成工作才是硬道理,以后时间可以静下心慢慢调试!祝你好运!
      

  3.   

    在标签上添上这个  如
    <%
    request.setCharacterEncoding("utf-8");
    response.setCharacterEncoding("utf-8");
    %>
    <%@ taglib uri="/WEB-INF/frwkservicestag.tld" prefix="brjl"%>我们公司是这样的   不知道能不能解决你的问题  呵呵