因为Java里的字符类型长度可能和其他的会不同,所以会出现这个问题。可以自己写一个转换函数
String convert(String inputStr){
  String converted=new String();
  byte[] bytes;
  try{
    bytes=inputStr.getBytes("ISO8859-1");
    converted=new String(bytes,"GB2312");
  }//end try
  catch(java.io.UnsupportedEncodingException e){
    System.out.print("error");
  }
  return converted;
}
试试看吧!

解决方案 »

  1.   

    这是字体的问题,专门发生在Swing用WindowsL&F的时候。不过这是jdk1.4才有的啊。或者你换一个jdk,比如最新的jdk1.3.1_02。
      

  2.   

    jdk1.3或jdk1.4都会有这种情况发生。
    有时候在JBuidler里运行一切正常,可是当用cmd命令运行时就会出现小方块。
    没有办法,只好采取了笨办法:
    this.setFont(new Font("Dialog",0,12));
    mJdbTable.setFont(new Font("Dialog",0,12));
    mButionOk.setFont(new Font("Dialog",0,12));
    ..............
      

  3.   

    pengji(彭乃超):能否说的稍微详细点?
    谢谢beetleking,按照您给的方法,汉字不再显示为方格,而是一个个问号,问题不能完全解决。
    gja106(中文字符):仍然是小方块。
    我的JDK1.3.1是JBuilder6带的,是个英文版,是不是这个原因呢?下载个JDK1.4.0多语言版是否能解决问题呢?TRY!我得先下载...... 
      

  4.   

    我编译java程序时用jdk1.4javac -encoding gb2312 Monitor.java可以在swing中显示汉字。你可以试试。
      

  5.   


    还是用 gja106(中文字符) 的方法,但是字体改成中文字体。this.setFont(new Font("宋体",0,12));再试试吧:)  
     
      

  6.   

    考,
    没听大师说过,乱码是编码问题,方块是字体问题吗?
    跟OS有关,看看你系统目录下(Windows or WINNT)Fonts目录,
    大概缺少字库,搞一个叫做SIMSUN.TTF的字体文件来,copy进这个目录,
    看看行不行。
      

  7.   

    使用gja106(中文字符)的办法,问题解决,谢谢gja106(中文字符),谢谢 sharetop,谢谢大家!但是,java做程序怎么字体问题搞的如此不利索?C++、DELPHI都不曾有这问题呀。