我用request.getParameter()从表单得到一个汉语构成的message赋给一个String,然后我将这个String通过append方法给一个StringBuffer(具体是XXX.append("汉"+message)),再将这个StringBuffer用application.setAttribute()装起来。在另一个页面中,我通过application.getAttribute()得到此对象并强转成StringBuffer类型,最后.toString()后out.println().结果页面能显示汉字构成的message但是“汉”一字却是两个?   请教各位大侠!!!!

解决方案 »

  1.   

    问题补充! 当用.toString()转换后,还使用了new String(.getBytes("ISO-8859-1"),"gb2312")!
      

  2.   

    在toString()转换前加  Bytes(toString())  试试看吧
      

  3.   

    在另一个页面中??你的页面<%@ page contentType="text/html; charset=gbk" %>怎么设置的啊?
      

  4.   

    使用:new String(request.getParameter("").getBytes("iso8859-1"),"gb2312");
    这样就不会得到乱码了,如果这样得到的还是乱码,看下页面上的语言,如果页面上的是GB2312,那就这样写,如果是
    UTF-8,那就把GB2312改成UTF-8
      

  5.   

    你在apend之前确定一下是不是乱码,在后台应该首先设置一下字符的编码.request.setCharacterEncoding();编码应该与页面保持一致