unicode编码

    技术2022-05-11  93

    private String unicode2String(String s) {      if(s == null)       return null;      StringBuffer result = new StringBuffer();      int tempI,i,ch;      for(i=0;i<s.length();i++) {       //如果是Unicode(开始是' //u ') 则将它转换成对应的汉字       if((ch = s.charAt(i)) == '//') {        tempI = i;        i+=2;        while(i<s.length()&&s.charAt(i) == 'u') {         i++;         }        if(i+4<=s.length()) { //将Unicode中十六进制数转换成十进制数         ch = Integer.parseInt(s.substring(i,i+4),16);         i+= 3;         }        else {         i = tempI;         }        } //对于汉字,将它从整形数据转换成字符后,附在result后,而对于英文字符,直接使用即可       result.append((char)ch) ;       }      return result.toString();      }         public String tmptrans(String s)     {         int i=s.length();         int j=0;         String s5="";         String s6="";         for(;j<i;j++){          String s2 = s.substring(j, j + 1);          if(s2.equals("%"))          {              String s4 = s.substring(j, j + 3);              if(s4.equals("\"))                  s5 = "//";              if(s4.equals("""))                  s5 = "/"";              if(s4.equals("<"))                  s5 = "<";              if(s4.equals(">"))                  s5 = ">";              if(s4.equals(":"))                  s5 = ":";              if(s4.equals(";"))                  s5 = ";";              if(s4.equals("'"))                  s5 = "'";              if(s4.equals("!"))                  s5 = "!";              if(s4.equals("#"))                  s5 = "#";              if(s4.equals("$"))                  s5 = "$";              if(s4.equals("%"))                  s5 = "%";              if(s4.equals("^"))                  s5 = "^";              if(s4.equals("&"))                  s5 = "&";              if(s4.equals("("))                  s5 = "(";              if(s4.equals(")"))                  s5 = ")";              if(s4.equals("="))                  s5 = "=";              if(s4.equals("{"))                  s5 = "{";              if(s4.equals("}"))                  s5 = "}";              if(s4.equals("["))                  s5 = "[";              if(s4.equals("]"))                  s5 = "]";              if(s4.equals(" "))                  s5 = " ";              if(s4.equals(","))                  s5 = ",";              if(s4.equals("?"))                  s5 = "?";              if(s4.equals("|"))                  s5 = "|";              if(s4.equals("`"))                  s5 = "`";              if(s4.equals("~"))                  s5 = "~";              if(s4.equals(" "))                  s5 = " ";              if(s4.equals(" "))                  s5 = " ";              if(s4.equals(" "))                  s5 = " ";              s6 += s5;              j += 3;          }          else          {              s6 += s2;              j++;          }         }         return s6;     }         public String unescape(String s)     {         if(s == null)             return s;         if(s.equals(""))             return s;         int i = s.indexOf("%u");         if(i < 0)             return tmptrans(s);         String s1 = s.substring(0, i);         String s2 = tmptrans(s1);         String s3 = "";         if(i + 6 < s.length())         {             s1 = s.substring(i, i + 6);             s3 = s.substring(i + 6);         } else         {             s1 = s.substring(i);             s3 = "";         }         s1 = s1.replace('%', '//');         s2 += unicode2String(s1);         return s2 + unescape(s3);     } }   

    最新回复(0)