try:<%@ page contentType="text/html;charset=gb2312"%>
<%String sStr1 = request.getParameter("var1")==null?"":request.getParameter("var1") ;
  String sStr2= request.getParameter("var2")==null?"":request.getParameter("var2") ;
  out.print("<br>var1乱码=="+sStr1) ;
  out.print("<br>var2乱码="+sStr2) ;  sStr1 = new String(sStr1.getBytes("8859_1"),"gb2312");
  sStr2 = new String(sStr2.getBytes("8859_1"),"gb2312");
  out.print("<br>var1=="+sStr1) ;
  out.print("<br>var2="+sStr2) ;
  out.print("<br>直接用中文汉字") ;
  %><script>
function test(){
var var1="中文" ;
var var2="汉字" ;
window.location="?var1="+var1+"&var2="+var2 ;
  }
</script>
<input type=button name=b value=Post onclick=test();>

解决方案 »

  1.   

    这好像和request.getParameter没有关系,
    因为产生问题的汉字不是从上页提交过来的,而是从数据库里查出来的,其他的字都没有问题,只有这一个字是问号,数据库里也是正常的,但一查出来,这个字就变问号了,
    是不是因为gb2312的字符集不够大啊?包含不了这么多汉字?
      

  2.   

    to Andrawu(Andrawu) :
    你说的我都试了,不起作用,和request.getParemeter没有关系
      

  3.   

    try........
     <%@ page contentType="text/html;charset=8859_1" %>
    就可以显示了,不过无法显示其它字符
      

  4.   

    <%@ page contentType="text/html;charset=8859_1" %>
      

  5.   

    你确保数据库中的数据不为乱码。用
    <%@ page contentType="text/html;charset=gb2312"%>
    就可以了。
    你的不行?可能数据库的字符集不正确,或其它的地方有问题。
      

  6.   

    Java只支持UCS-2(Unicode)字符集,再UCS-2字符集中占不包含次子,所以无法显示。
      

  7.   

    Unicode(UCS-2)字符集中没有该字符,所以无法显示。