我的数据库和JSP页面都是设置的GBK
显示中文的时候一点毛病没有,就是通过SERVLET中的response.sendRedirect跳转到JSP页面时出现乱码,全是???
代码如下:
response.sendRedirect("YPbianhaoModify.jsp?jinhuoshang="+jinhuoshang+"&jinhuoriqi="+jinhuoriqi)
跳转的地址栏显示:
http://127.0.0.1:8080/medicine/YPbianhaoModify.jsp?jinhuoshang=??om?jinhuoriqi=2007-09-23
望达人给解答下,试了好多办法都没成功.

解决方案 »

  1.   

    get需要使用URLEncoder对url编码,然后再用服务器URLDecoder解码对应讲解:http://family168.com/tutorial/jsp/html/jsp-ch-02.html#jsp-ch-02-02-03
      

  2.   

    你输入数据是不是有问题..
    或者用过滤器过滤一下中文问题..
    还有..request和response都要set那个Encoder.....忘记那个英文
      

  3.   

    你用reqeust.setCharacterEncoding("gbk")试试,这个方法主要是设置对客户端请求进行重新编码的编码方法。
      

  4.   

    jinhuoshang="+jinhuoshang+"&jinhuoriqi="+jinhuoriqi
    这样传递,如果有中文不乱码才怪
    你是重定向
    可以把这两个值放在session里传出去
      

  5.   

    传值方法你定义成 method="post" 编码用GBK就OK
      

  6.   

    URLEncoder.encoderesponse.sendRedirect(URLEncoder.encode("YPbianhaoModify.jsp?jinhuoshang="+jinhuoshang+"&jinhuoriqi="+jinhuoriqi,"GBK"));根据你的页面编码,修改里面的编码类型 
      

  7.   

    我不是用FORM提交的,是一个超连接
    a href='YPbianhaoEditAction?yaopinbianhao=${row.yaopinbianhao}
    我的POST和GET都用了
    request.setCharacterEncoding("GBK");
    response.setContentType("text/html; charset=GBK");
    还有就是我的参数特别多,用SESSION是不是太麻烦了
      

  8.   

    超链接你就不会用了? 最简单的,就是不用tag,而是嵌入JSP标签但是,我依然建议你,不用中文之类的字符做链接,还是用id之类的数字比较好
      

  9.   

    没有关系,估计你的问题是出在你的页面编码上了,把你的jsp页面编码改成gb2312试试,要不就写一个filter。
      

  10.   

    老紫竹说的是对的!你这里response.sendRedirect("YPbianhaoModify.jsp?jinhuoshang="+jinhuoshang+"&jinhuoriqi="+jinhuoriqi)要是有中文件的话就成了
    response.sendRedirect("YPbianhaoModify.jsp?jinhuoshang=进货商&jinhuoriqi=2007-09-23");这里的中文不进行处理,重定向的时候必然会出现http://127.0.0.1:8080/medicine/YPbianhaoModify.jsp?jinhuoshang=??om?jinhuoriqi=2007-09-23 用URLEncoder.encode()方法对中文处理吧。如:
    String url = "YPbianhaoModify.jsp?jinhuoshang="+jinhuoshang+"&jinhuoriqi="+jinhuoriqi;
    response.sendRedirect(URLEncoder.encode(url,"GBK"));//GBK是页面的编码格式,可根据情况修改
      

  11.   

    上面说的很清楚,你自己试试,我想应该可以搞定的.问此类问题的太多了,你要是多在CSDN上逛几次,我想也会省你打这么几个字了.呵呵@@@
      

  12.   

    怎么又是乱码的问题!!难道JSP的乱码问题真的有那么难解决吗???
    表单提交乱码使用  过滤器就可以完全解决
    地址栏提交中文变乱码:两种解决方法,一种是写个方法进行编码转换,另外一种使用Tomcat的server.xml进行配置即可。我很少会碰到乱码的问题。
      

  13.   

    最简单的事去server.xml 把charset 设置成你要的
      

  14.   

    弱弱的问一下,server.xml的位置在什么地方,就找到了个WEB.XML,里面只有encoding的设置,没有看到charset呀,忘高手指点.
      

  15.   

       你还可以在你的SERVLET类中的接方法下输入:request.setCharacterEncoding("GBK");
                            response.setCharacterEncoding("GBK"); 
                                               这两句
      注意:是接方法下面;简单一点;
      

  16.   

    你看看你的跳转地址 http://127.0.0.1:8080/medicine/YPbianhaoModify.jsp?jinhuoshang=??om?jinhuoriqi=2007-09-23 明明是传中文了 出现乱码了 换种方式传值吧 这样很不好 参数最好不要传中文 
      

  17.   

    request.setCharacterEncoding("gbk");
    response.setCharacterEncoding("gbk");
    在SERVLET加入这两个,应该可以的
      

  18.   

    老生常谈的问题。
    感觉还是你的设计思路在找你麻烦。
    如果非得用中文传递,那么URLEncoder.encode,GBK|GB2312|UTF-8就要加上。
    加一句,进货商该成进货商编号进行传递不是问题都没有了吗,我不信你进货商数据表里没编号的。
      

  19.   

    其实写个过滤类   再在web.xml里配置一下就好了···
      

  20.   

    服了,按String url = "YPbianhaoModify.jsp?jinhuoshang="+jinhuoshang+"&jinhuoriqi="+jinhuoriqi; 
    response.sendRedirect(URLEncoder.encode(url,"GBK"))
    这个方法
    出现了如下错误:
    HTTP Status 404 - /medicine/YPbianhaoModify.jsp%3Fjinhuoshang%3D%B9%FE%B6%FB%B1%F5%D6%C6%D2%A9%C1%F9%B3%A7%26jinhuoriqi%3D2007-09-23%26yaopinbianhao%3D7%26jinhuodanjia%3D14.0%26yaopinmingcheng%3D%CD%B7%E6%DF%CB%FB%B6%A8%28%D5%EB%29%26xiaoshoudanjia%3D28.0%26piyindaima%3DTBTD%26youxiaoqixian%3D2009-09-23%26yaopinguige%3D1g%26jiliangdanwei%3D%D6%A7%26rukushuliang%3D310
      

  21.   

    请注意一下URLEncoder只能用在参数上
    别把整个url都转了,会把所有?,&这些都破坏掉。
      

  22.   

    崩溃中~~~~~~~~~`
    还是出现上面的错误.
    response.sendRedirect(URLEncoder.encode("YPbianhaoModify.jsp?jinhuoshang="+jinhuoshang,"GBK"));
      

  23.   

    崩溃中~~~~~~~~~`
    还是出现上面的错误.
    response.sendRedirect("YPbianhaoModify.jsp?" + URLEncoder.encode("jinhuoshang="+jinhuoshang,"GBK"));
      

  24.   

    response.sendRedirect("YPbianhaoModify.jsp?" + URLEncoder.encode("jinhuoshang="+jinhuoshang,"GBK"));你别在里头传中文不就没事了吗?自找没趣。
      

  25.   

    不对,我还是写错了。response.sendRedirect("YPbianhaoModify.jsp?jinhuoshang=" + URLEncoder.encode(jinhuoshang,"GBK"));
      

  26.   

    LS这位大侠呀,还是乱码呀
    我都服了
    准备挨个写到SESSION里传了
      

  27.   

    那就是GBK写错了呗,
    按环境要选择各种编码,写错了就是乱的。还有用utf-8的哪。一句话,用get传中文就是自己找罪受,你要是闲就一个一个试,说不定哪天就能试出好的来。
      

  28.   

    我传的不是中文啊。但是也是出现乱码。别的页面跳转到出现吗乱码页是不出现乱码的。但是从 action中跳转就会出现乱码。我很郁闷啊
    response.sendRedirect("/TravelSortInfoSystem/sendmessage.do?operate=GetyishenheList&receive="+receive);
    这是我写的。
    在页面中获取是用receive=request.getParameter("receive");
    显示 是用<%=receive%>
    就这样出现了乱码  郁闷啦
      

  29.   

    恩,我的页面里没接收任何内容,只是从Selete里重定向了一下,中文就全部变成乱码了
      

  30.   

    http://bbs.bccn.net/thread-41134-1-1.html
    这里解释的很清楚。另外补充一句:过滤器过滤仅适用于post提交的,你在servlet中转向jsp则是get提交,所以即使在过滤器中加入了编码也还是会乱码