你取的是gb2312吗?,在java中你要转换为unicode码,如:
public static String changeFromGb(String sHTML)
{
       if(sHTML==null)
{
return null;
}
StringBuffer svg=new StringBuffer();
try
{
StringBufferInputStream std=new StringBufferInputStreamsHTML);
BufferedReader bvb=new BufferedReader(new InputStreamReader(std,"GB2312"));
String tmp=null;
while((tmp=bvb.readLine())!=null)
{
svg.append(tmp);
}
std.close();
bvb.close();
}
catch(Exception eee){}
return svg.toString();
}

解决方案 »

  1.   

    试试以下的办法:
    public static String toChinese(String strvalue)
    {
      try
      {
        if(strvalue==null)
        {
          return null;
        }
        else
        {
          strvalue = new String(strvalue.getBytes("GBK"));
          return strvalue;
        }
      }
      catch(Exception e)
      {
        return null;
      }
    }
    public static String unToChinese(String strvalue)
    {
      try
      {
        if(strvalue==null)
        {
          return null;
        }
        else
        {
          strvalue = new String(strvalue.getBytes("ISO8859_1"), "GBK");
          return strvalue;
        }
      }
      catch(Exception e)
      {
        return null;
      }
    }
    放到库里之前转化一下,从库里出来的时候做一下反转化,试一下。
      

  2.   

    呵呵,我想是字体的问题,给label换个字体试试看
      

  3.   

    我想给分,但是不知道怎么给,也不知道我有多少分,请问。?还有:to baby213(宝宝) :我现在没办法试,等中午试试看再告诉你八。
      

  4.   

    刚才试了一下,两位的办法还是都不行。
    第一种:StringBufferInputStream编译时被警告说不推荐使用,没管它,运行--依旧是框框。
    不仅如此,本来println输出正常的,也都变成???了。
    第二种:
    编译时正常,运行---label上还是框框。println上面正常。我不理解为什么println输出就是正常的?]
    而且从这几天的情况来看,我觉得不是unicode和gb2312的问题,
    因为用各种办法改变编码方式,println输出反而变得不正常了。
    而且我的情况时出现框框,而不是乱码。
    有仁说是因为数据库的问题。要修改数据库的编码方式。
    我用的是access,难道是修改access的编码?我还没听说过这么修改,请高手指教。
    还有,jdbc-odbc桥和这个情况是否有关系?能不能换一个桥看看?
    哪里有别的版本的桥可以下载的?
    谢谢!!