如题,我知道 properties中的文件可以直接,把\udddd读入成为unicode对应字符,
有没有这种函数,就是把String 中的\udddd转化为unicode 对应字符?(这个String 中还包含有正常的ascii字符)

解决方案 »

  1.   

    总不至于将整个unicode码表用正则搞定吧?
      

  2.   

    当然不是unicode码表了找properties解析的源代码看看
    或搜一下java的unicode转换代码
      

  3.   

    答:把String 中的\udddd转化为unicode 对应字符 ,什么意思?
    在JAVA中,String s="ab\u5e7fdd"; 它就是:"ab广dd"啊,这个是不用你转换的啊.
    若你是说的放在文件中,则参考代码:        //功能:将文本文件中的串ab\u5e7fdd\u5ddeew\u5e02qq\u531721\u4eac\u8def39\u53f7mm
    //转换成:ab广dd州ew市qq北21京路39号mm
    public static String convert(String uniString)
        {
                  StringBuilder sb = new StringBuilder();
                  int i=-1;
                  int pos=0;
                  while((i=uniString.indexOf("\\u",pos))!=-1)
                  {
                   sb.append(uniString.substring(pos,i));
                      if(i+5<uniString.length())
                      { 
                          pos=i+6;
                          sb.append((char)Integer.parseInt(uniString.substring(i+2,i+6),16));
                      }//if
                  }//while
                  sb.append(uniString.substring(pos));
                  return sb.toString();
        }
      

  4.   

    用该方法测试的结果如下: 
    若:文本文件中的串是:ab\u5e7fdd\u5ddeew\u5e02qq\u531721\u4eac\u8def39\u53f7 
    则:结果是:ab广dd州ew市qq北21京路39号 
      

  5.   

    用正则也可以,String regex="\\u[0-9a-fA-F]{4}";找出所有的编码
    String有个构造方法new String(char[])就可转化为Unicode
      

  6.   

    以上方法有Bug的吧比如 String s="\\u5e7f"
    难道要转成 String s="\广"?