简体XP操作系统,JDK1.4.2,执行这样的代码:     String strGbk = "餐飲住宿";
String strBig5 = new String(strGbk.getBytes("GB2312"),"BIG5");
String strGbk2 = new String(strBig5.getBytes("BIG5"),"GB2312"); System.out.println(strGbk);
System.out.println(strBig5);
System.out.println(strGbk2);
我觉得理论上strGbk2应该输出跟strGbk一样的,但实际上有乱码,请问这是什么原因?

解决方案 »

  1.   

    这个问题不久前讨论过,JAVA的字符转换有时的确会有问题,不仅仅是从GB2312->BIG5->GB2312,同样的问题还存在于GB2312->UTF-8->GB2312(当然可能与系统的字符编码规则有关)
    我目前的作法:既然不能解决问题,只能避免问题的发生
      

  2.   

    java转换字符时会出现一些莫名其妙的问题,尽量避免吧。
      

  3.   

    java在这方面还不太完善,
    楼主应尽量避免这种用法!
      

  4.   

    主要是数据库中的数据是strBig5,我要把它转成GBK的,结果老是有乱码,不知有什么其它方法可以解决的?