加个<%@ page contentType="text/html;charset=gb2312"%>
试试

解决方案 »

  1.   

    不知道你是怎麼轉換的,用下面的試試:
    String s=new String(str.getBytes("8859_1"),"gb2312");
    或str.getBytes("gb2312"),"8859_1");
      

  2.   

    一点一点试,先不要加任何转化方法。
    有一些server的编码方式不一样,如JBuilder的编码方式就很诡异
      

  3.   

    <%@ page contentType="text/html; charset=GBK" %>
      //中文编码的转换----------------------------------------------------------
       public String toGb(String uniStr){
        String gbStr = "";
        if(uniStr == null){
          uniStr = "";
        }
        try{
         byte[] tempByte = uniStr.getBytes("ISO8859_1");
         gbStr = new String(tempByte,"GB2312");
        }catch(UnsupportedEncodingException uef){
       }
        return gbStr;
      }
      public String toUni(String gbStr){
        String uniStr = "";
        if(gbStr == null){
          gbStr = "";
        }
        try{
         byte[] tempByte = gbStr.getBytes("GB2312");
         uniStr = new String(tempByte,"ISO8859_1");
        }catch(UnsupportedEncodingException uef){
       }
        return uniStr;
      }
      //end of toGb---------------------------------------------------------
      

  4.   

    试试1 在classpat中加入 il8n.jar2 在jsp的zone配置文件中,修改compiler=builtin-javac -encoding ISO8859-1
      

  5.   

    <%@ page contentType="text/html; charset=GBK" %>
      //中文编码的转换----------------------------------------------------------
       public String toGb(String uniStr){
        String gbStr = "";
        if(uniStr == null){
          uniStr = "";
        }
        try{
         byte[] tempByte = uniStr.getBytes("ISO8859_1");
         gbStr = new String(tempByte,"GB2312");
        }catch(UnsupportedEncodingException uef){
       }
        return gbStr;
      }
      public String toUni(String gbStr){
        String uniStr = "";
        if(gbStr == null){
          gbStr = "";
        }
        try{
         byte[] tempByte = gbStr.getBytes("GB2312");
         uniStr = new String(tempByte,"ISO8859_1");
        }catch(UnsupportedEncodingException uef){
       }
        return uniStr;
      }
      //end of toGb-------------------------------------------------转吧,这样不行,就那样
      

  6.   

    你再加上<meta http-equiv=contentType content="text/html;charset=gb2312",我以前出现过你这样的,总是加上就好了.试一试?
      

  7.   

    原理是这样的。在jsp引擎在执行jsp网页时会将它当作一个java文件,先对其进行编译成class文件,然后再执行。
    因为你的页面是个框架结构,所以“<%@ page contentType="text/html;charset=gb2312"%>
    ”只对主页面起了作用,即主页面在编译时按汉字码进行了编译,而显示信息的页面因为没有指明字符集,所以系统按照默认的编码,一般是“ISO8859-1”来进行编译,这时就出错了。解决方法:
    1、对信息进行编码转换。这是一般JSP网页中都需要做的。比如“weidegong(weidegong) ”的方法。
    2、若有可能,在显示信息的网页(框架)中加入“<%@ page contentType="text/html;charset=gb2312"%>”
    3、提供一个更保险的方法,将字符转为UNICODE码,并用&#x+UNICODE码+;的形式写出,这样的转化文字将在任何浏览编码集下正常显示中文。不信我提供一个javaBean,你自己试试。代码如下。(如需使用,请注明作者jetplane)
    //Begin====================================
    import java.io.Serializable;public class c2uGB implements java.io.Serializable
    {
    public c2uGB(){}
    public static String toHEXString(byte b)
    {
    return (""+"0123456789ABCDEF".charAt(0xf&b>>4)+"0123456789ABCDEF".charAt(b&0xF));
    }
    public String getc2u(String setStr)
    {
    String szRet="",szRetTmp;
    try
    {
    String str = new String(setStr.getBytes("GB2312"),"GB2312");
    byte[] bb=str.getBytes("UTF16");
    for(int i=2;i<bb.length;i++)
    {
    i++;
    if(bb[i-1]!=0)
    szRetTmp = "&#x" + toHEXString(bb[i-1]) + toHEXString(bb[i]) + ";";
    else
    szRetTmp = new String(bb,i,1,"GB2312");
    szRet = szRet + szRetTmp;
    }
    }
    catch(Exception e)
    {
    szRet="c2u fail";
    e.printStackTrace();
    }
    return szRet;
    }
    }
    //End===============================================