如何将这个以下字符串(unicode字符集)
String string = "\\" + "u97e9" + "\\" + "u56fd";
转换成对应的中文显示(utf-8字符集)?求解!

解决方案 »

  1.   

    u97e9
    ==>
    String str = "\\" + "u97e9" + "\\" + "u56fd"; 
    new String(str.getBytes("UTF-8"));
      

  2.   


    byte[] b = new byte[] {(byte)'\u97e9',(byte)'\u56fd'};
         System.out.println(new String(b));
      

  3.   

    直接计算 String  str="97e956fd";  
            StringBuffer  sb=new  StringBuffer();  
            for(int i=0;i<str.length()/4;i++)  
            {  
                    int  j=Integer.parseInt(str.substring(i*4,i*4+4),16);  
                    sb.append((char)j);  
            }  
            System.out.println(sb);
      

  4.   

    答:参考代码如下: public static String convertUTF8(String utfString) throws UnsupportedEncodingException
        {
                  StringBuilder sb = new StringBuilder();
                  int i=-1;
                  int pos=0;
                  while((i=utfString.indexOf("\\u",pos))!=-1)
                  {
                      sb.append(utfString.substring(pos,i));
                      if(i+5<utfString.length())
                      { 
                          pos=i+6;
                          sb.append((char)Integer.parseInt(utfString.substring(i+2,i+6),16));
                      }//if
                  }//while
                  String s= sb.toString();
                  return new String(s.getBytes("UTF-8"));
        }
    //用法:String str = "\\" + "u97e9aa" + "\\" + "u56fdbb";  
    //String utf8str=convertUTF8(str);
      

  5.   

    答:另外见贴:http://topic.csdn.net/u/20080424/19/c2fce6b0-29ce-4771-a779-acf9d8e75cd3.html
      

  6.   

    答:对不起。代码漏了一句。补上:public static String convertUTF8(String utfString) throws UnsupportedEncodingException
        {
                  StringBuilder sb = new StringBuilder();
                  int i=-1;
                  int pos=0;
                  while((i=utfString.indexOf("\\u",pos))!=-1)
                  {
                      sb.append(utfString.substring(pos,i));
                      if(i+5<utfString.length())
                      { 
                          pos=i+6;
                          sb.append((char)Integer.parseInt(utfString.substring(i+2,i+6),16));
                      }//if
                  }//while
                  sb.append(utfString.substring(pos));
                 String s=sb.toString();
                 return new String(s.getBytes("UTF-8"));
        }用法:     String str = "aa\\" + "u97e9aabb" + "\\" + "u56fdcc";  
      String utf8str=convertUTF8(str);
      

  7.   


    String str = "\\" + "u97e9" + "\\" + "u56fd"; 
    java.util.regex.Pattern p = java.util.regex.Pattern.compile("\\\\u(\\w{4})");
    java.util.regex.Matcher m = p.matcher(str);
    while(m.find())
    System.out.println((char)Integer.valueOf(m.group(1), 16).intValue());
    怎么是“韩国”啊……