我有一个简单的jsp页面,希望自己给自己传中文的参数然后显示出来,但是现实出来的是乱码,请问大家怎么解决呢?谢谢先<%@ page contentType="text/html; charset=gb2312" language="java"  import="java.net.*" errorPage="" %>
<% 
String test = URLDecoder.decode((String)request.getParameter("test"),"gb2312");
if (test == null)
   test = "测试";
%>
<a href="test.jsp?test=<%=test%>"><%=test%></a>

解决方案 »

  1.   

    补充一点,这个页面的名字就叫test.jsp
      

  2.   

    看你用的数据库,orcale或者mysql还有sqlserver的话,设置不太一样
      

  3.   

    我想知道的是,你这个test.jsp文本文件本身的编码格式是不是gb2312的。如果不是,怎么折腾也白搭
    我就认准一个道理:进去是什么字符集,出来肯定是什么字符集。你把所有涉及字符集的地方,全部设置成一致的,比如Gbk,gb2312,utf-8 绝对不会出错。否则有一个地方不一样就全盘皆输对你这里来说,你想用gb2312的那么你的Jsp内容字符集要用gb2312,jsp文本文件自身字符集也要是gb2312的(windows的默认可是gbk的,小心!).建议最好用utf-8 
      

  4.   

    <meta http-equiv=content-type content="text/html; charset=gb2312">meta字段必须也设置成gb2312,没有的必须添加上。
      

  5.   


    String test = new String(request.getParameter("test").getBytes("iso-8859-1"),"gb2312"); 
    这样试下呢
      

  6.   

    项目的编码,文件的编码,内容编码,要统一,最好使用utf8编码
      

  7.   

    <a href="test.jsp?test= <%=test%>"> <%=test%> </a>
    改为:<a href="javascript:encodeURI(test.jsp?test= <%=test%>)"> <%=test%> </a>
      

  8.   

    用记事本打开你的Jsp文件,另存为,选择编码为UTF-8,把你的页面编码也换成UTF-8试试
      

  9.   

    把页面、数据库统一设置成UTF-8。什么GBK/GB2312统统不管他们。
      

  10.   

    如果你使用encodeURI进行转码的话,还需要使用encode进行编码,这两个一般是配对出现的
    解决编码一般常用这几种方法
    1,先把转换成8859编码,在由8859转换成你想要的编码
    String test = new String(request.getParameter("test").getBytes("iso-8859-1"),"gb2312"); 
    2,在发送端和接收方分别进行encodeURI和encode编码和转码
    3,使用过虑器,这个是最直接,最有效,最好用的乱码解决方案.
    4,建议统一使用UTF-8编码
    .......
      

  11.   

    在首部获值是
     增加一个 
    request.getParamter("gbk");
      

  12.   

    全部改成UTF-8试试,看看你的jsp文件的属性是什么语言的,最好也一样。
      

  13.   

    编码最好一致的好,统一GBK或者UTF-8
      

  14.   

    test  = new String (test.getBytes("iso-8859-1"),"gb2312") ;对接收的值转一下码,这个不行,可以换成别的编码试试如: utf-8 ,gbk
      

  15.   

    对啊,看到你给URL加密了,但是真正连接的时候却没有解密
      

  16.   

    谢谢各位回复,我今天把jsp文件另存为utf8格式并且把所有的编码声明都改成utf8,这个问题还是存在。
      

  17.   

    加上request.setCharacterEncoding(“gbk”)试下!