输入GBK编码的“园:”(半角的冒号)转换出来utf8是乱码,若输入“园园:”则转换正常。String s = new String(str.getBytes("GBK"), "UTF-8");请教各位如何解决

解决方案 »

  1.   

    GBK是2个字节
    UTF-8是3个字节
      

  2.   


    谁跟你说在不同的编码之间可以这样转换的?除非 str 本身就是 UTF-8 的而被错误编码成 GBK 了
      

  3.   

    即使 UTF-8 的字节数组, 被误组成 GBK String也不一定能用
    new String(str.getBytes("GBK"), "UTF-8"); 
    得到原目标串
    ===================随便就用
    String s = new String(str.getBytes("GBK"), "UTF-8"); 
    哪能保证不出乱子
      

  4.   

    java中字符都是用unicode进行编码的,
    不同编码之间不可以转换