问题是这样的,最近做Javaweb方面的开发,我用jsp和struts2做的项目,
jsp的url后跟中文参数,到struts的action里查看属性总是乱码,不知道是什么问题。
注意下:我已经把编码统一了,还是会出现这个问题。而且不同的浏览器出现的而问题还不一样。
急。跪求高手解决

解决方案 »

  1.   

    jsp的url后跟中文参数 本来就会乱码的
    你用post提交就没问题了 
    或者你转下码 具体方法百度下 这类帖子很多
      

  2.   

    这种情况我也遇到过,解决方法如下:
      String urlParam= request.getParameter("urlParam");
      urlParam= new String(urlParam.getBytes("ISO-8859-1"), "UTF-8");
    就是在Action中得到传递过来的参数后再将字符编码修改为你设置的字符编码,如“UTF-8”。
    因为Servlet默认的字符编码为"ISO-8859-1",前台传递过来的请求如果没有提交而是直接传递给Action
     Servlet 不会将默认的字符编码转化为你自己设置的字符编码。
    希望可以帮助你。
      

  3.   

    好像发送时,使用2次URLEncoder;接收时用java.net.Decoder.decode(xxx,"UTF-8");这是我在升级JBOSS时遇到的,而以前的程序是:发送时使用一次URLEncoder;接收时,直接使用。我也说不清楚为什么。
      

  4.   

    直接一点,当传递含有中文的url时就使用URLEncode.encode(),接收时使用URLEncoder.decode()
      

  5.   

    编码问题我应经全部同意utf-8了,就是每次在地址栏里直接连续请求action,如:。。/list.action?word=中文;接收到的文字是乱码,在数据库里就查不出内容。像4楼说的那个方法我也试 了,也没用。不知道怎么回事。。继续等待
      

  6.   

    就是这个转码 你试试吧
    要使用post传参 就不用转码
      

  7.   

    设置jsp页面的编码格式
    在JSP页面编码,再处理的action那里解码,,编码可以用js的方法 
    var cName1 = encodeURI("asd");
    var password = encodeURI($("#password").val());
    之前我就是这样解决的
      

  8.   

    可以在web.xml文件中配一个过滤器,但这个过滤器一定要配在struts2的过滤器之前。过滤器我就不写了,你百度一下。
      

  9.   

    写个 Filter 字符 统一。 Post提交 没事传什么中文啊。
      

  10.   

    tomcat 
    server.xml中在相对应的端口中加下面两句
    useBodyEncodingForURI="true" 
    URIEncoding="UTF-8"
      

  11.   

    也可以将web.xml中的
    <filter>
       <filter-name>struts2</filter-name>
       <filter-class>
       org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter
       </filter-class>
    </filter>替换为:<filter>
        <filter-name>struts2</filter-name>
        <filter-class>org.apache.struts2.dispatcher.FilterDispatcher</filter-class>
    </filter>
    这个绝对能行
      

  12.   

    顶一楼  你用post提交试试 
    我就遇到过这种情况  改为post提交就好了
      

  13.   

    我前几天遇到过,用url传参数中文乱码,在tomcat 的 
    server.xml中在相对应的端口中加下面两句
    useBodyEncodingForURI="true"  
    URIEncoding="UTF-8"  
      

  14.   

    tomcat,项目统一用utf-8,绝对不会乱码。我做过实验!
      

  15.   

    我url传中文参数出现乱码,加了那两句就好了
      

  16.   

    在tomcat 的  
    server.xml中在相对应的端口中加下面两句
    useBodyEncodingForURI="true"   
    URIEncoding="UTF-8" 
      

  17.   

      为什么非得跟在URl后面呢 。
       你可以弄一个表单提交 
      URL 是要转码的! java.net 包下URLEncoder 设置编码 
      

  18.   

    没什么特别需求,果断post吧,编码是个头疼的问题,网上搜索的很多编码解码函数都不可靠,很多人试都没试过就发帖,鄙视!
      

  19.   


    这个好使,早几天知道,我就不要改那么多页面了从jsp传到受托管bean,我们原先的代码是:
    jsp中调用EncodeURI
    managedbean中直接使用;被我改成jsp中调用两次EncodeURI
    managedbean中调用java.net.URLDecoder.decode(xxx,"UTF-8");而server.xml中加上URIEncoding="UTF-8"
    原先的代码就好用了,当然我改过的代码也能使,就这样了。