Unicode编码转中文

import java.io.UnsupportedEncodingException;

public class fanyi {
    public static void main(String[] args) {
        String one = "\u82f9\u679c";
        String name = null;
        name = decodeUnicode(one);
        System.out.println(name);
    }


    public static 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();      

         }     
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值