java实现unicode的解码





public String decodeUnicode(String theString) { 


         char aChar; 


         int len = theString.length(); 


        StringBuffer outBuffer = new StringBuffer(len); 


        for (int x = 0; x < len;) { 


         aChar = theString.charAt(x++); 


         if (aChar == '\\') { 


          aChar = theString.charAt(x++); 


         if (aChar == 'u') { 


      // Read the xxxx 


        int value = 0; 


          for (int i = 0; i < 4; i++) { 


          aChar = theString.charAt(x++); 


           switch (aChar) { 


         case '0': 


           case '1': 


          case '2': 


            case '3': 


           case '4': 


     case '5': 


            case '6': 
             case '7': 
             case '8': 
             case '9': 
              value = (value << 4) + aChar - '0'; 
              break; 
             case 'a': 
             case 'b': 
             case 'c': 
             case 'd': 
             case 'e': 
             case 'f': 
              value = (value << 4) + 10 + aChar - 'a'; 
             break; 
             case 'A': 
             case 'B': 
             case 'C': 
             case 'D': 
             case 'E': 
             case 'F': 
              value = (value << 4) + 10 + aChar - 'A'; 
              break; 
             default: 
              throw new IllegalArgumentException( 
                "Malformed   \\uxxxx   encoding."); 
             } 


           } 
            outBuffer.append((char) value); 
           } else { 
            if (aChar == 't') 
             aChar = '\t'; 
            else if (aChar == 'r') 
             aChar = '\r'; 


            else if (aChar == 'n') 


             aChar = '\n'; 


            else if (aChar == 'f') 


             aChar = '\f'; 


            outBuffer.append(aChar); 


           } 


          } else


          outBuffer.append(aChar); 


         } 


         return outBuffer.toString(); 


        } 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值