日期:2014-05-19 浏览次数:20952 次
/**
 * 将页面传递的Unicode字符编码转换成相应的汉字
 * */
public class GetStringByString  {
    private String string;
    public GetStringByString(String string){
        this.string=string;
    }
    public String getUnicodeString(){
        
        if(!isIllegal(this.string)){
            return this.string;
        }
        
        
        String[] s=this.string.split(";");
        
        StringBuffer sb=new StringBuffer();
        
        
        for(int i=0;i<s.length;i++){
            if(isHave(s[i])){
                String s1=s[i].substring(0, s[i].indexOf("&"));
                sb.append(s1);
                String s2=s[i].substring(s[i].indexOf("#")+1);
                sb.append((char)Integer.parseInt(s2));
            }
            else{
                sb.append(s[i]);
            }
        }
        return sb.toString();
    }
    //判断是否存在&#
    private boolean isHave(String s){
        
        for(int i=0;i<s.length();i++){
            if(s.charAt(i)=='&'&&s.charAt(i+1)=='#'){
                return true;
            }
        }
        return false;
    }
    //判断是否存在;
    private boolean isIllegal(String s){
        for(int i=0;i<s.length();i++){
            if(s.charAt(i)==';'&&s.charAt(i-6)=='#'&&s.charAt(i-7)=='&'){
                return true;
            }
        }
        return false;
    }
    
}