你试一下 new String(deliver.getMessageContent().getBytes("UTF-16"))不行,用UTF-16LE, UTF-16BE

解决方案 »

  1.   

    如果你确定你的到的肯定是UCS2编码的字符串的话
    可以用以下的办法:
    try{
        String s=deliver.getMessageContent();
        String n=new String(s.getBytes("unicode"),"gb2312");//注意一定是在win系统
        System.out.println(n);
    }catch(Exception e){
      System.out.println("无法解码="+e.toString());
    }祝你好运!
      

  2.   

    你的MessageContent为什么是UCS2?
    UCS2 只是一种编码的方式, 目前Java中用的extented UCS2既UTF16. 确认一下.
      

  3.   


    可以用UnicodeBigUned来替代ucs2编码;试试下面这段程序:String strUcs2 = deliver.getMessageContent();
    System.out.println(strUcs2);String str = new String(strUcs2.getBytes(), "UnicodeBigUned");
    System.out.println(str);如果不行再试试UnicodeLittleUned编码;如果提示不支持UnicodeBigUned和UnicodeLittleUned编码,那么就用高一点的版本试试。