%u554a=啊

解决方案 »

  1.   

    好像%u554a 就是 '\u554a'
      

  2.   

    不知道你是什么情况
    这样应该可以
     String ss[]="%u554a".split("%u");
            for(int i=0;i<ss.length;i++){
                if(ss[i].length()>0){    
                    char a=(char) Integer.parseInt(ss[i],16);
                    System.out.println(a);
                }
            }
      

  3.   

    public static String  unescape (String src) {
    StringBuffer tmp = new StringBuffer();  
    tmp.ensureCapacity(src.length());  
    int  lastPos=0,pos=0; 
    char ch;  
    while (lastPos<src.length())  {   
    pos = src.indexOf("%",lastPos);   
    if (pos == lastPos){   
    if (src.charAt(pos+1)=='u') {     
    ch = (char)Integer.parseInt(src.substring(pos+2,pos+6),16);     
    tmp.append(ch);     
    lastPos = pos+6;     
    }    
    else
    {     
    ch = (char)Integer.parseInt(src.substring(pos+1,pos+3),16);     
    tmp.append(ch);     
    lastPos = pos+3;     
    }    
    }   
    else    
    {    
    if (pos == -1)     
    {     
    tmp.append(src.substring(lastPos));     
    lastPos=src.length();     
    }    
    else    
    {     
    tmp.append(src.substring(lastPos,pos));     
    lastPos=pos;     
    }    
    }  
    }  
    return tmp.toString(); 
    }String a = "%u554a";
    out.print(unescape(a));java版本的escape和unescape函数 http://www.blogjava.net/emu/articles/4773.html
      

  4.   

    哦,原来要自己解啊!
    多谢孟子,不过这种情况我比较喜欢用正则:
        static String unescape(String src) {
            //Pattern pattern=Pattern.compile("%u[0-9a-f]{4}", Pattern.CASE_INSENSITIVE);
            Pattern pattern=Pattern.compile("%u[0-9a-fA-F]{4}");
            Matcher macher=pattern.matcher(src);
            
            StringBuffer buffer=new StringBuffer();
            int start=0;
            while(macher.find()) {
                buffer.append(src, start, macher.start());
                start=macher.start();
                String code=src.substring(start+2, start+6);
                char ch=(char)Integer.parseInt(code, 16);
                buffer.append(ch);
                start=macher.end();
            }
            buffer.append(src, start, src.length());
            return buffer.toString();
        }