0 0

java 怎么把unicode转中文3

String str="\u4e0a\u6d77" 怎么把str转成中文?

问题补充:
ymmihw 写道
Unicode中就包含中文啊……

怎么转呢?

问题补充:
Dxx23 写道
/**  

043       * unicode 转换成 中文  

044       * @author fanhui  

045       * 2007-3-15  

046       * @param theString  

047       * @return  

048       */ 

049      public static String decodeUnicode(String theString) {  

050       char aChar;  

051       int len = theString.length();  

052       StringBuffer outBuffer = new StringBuffer(len);  

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

054        aChar = theString.charAt(x++);  

055        if (aChar == '\\') {  

056         aChar = theString.charAt(x++);  

057         if (aChar == 'u') {  

058          // Read the xxxx  

059          int value = 0;  

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

061           aChar = theString.charAt(x++);  

062           switch (aChar) {  

063           case '0':  

064           case '1':  

065           case '2':  

066           case '3':  

067           case '4':  

068           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();  

      }  



谢了。
2011年8月02日 13:59

4个答案 按时间排序 按投票排序

0 0

采纳的答案

/**  

043       * unicode 转换成 中文  

044       * @author fanhui  

045       * 2007-3-15  

046       * @param theString  

047       * @return  

048       */ 

049      public static String decodeUnicode(String theString) {  

050       char aChar;  

051       int len = theString.length();  

052       StringBuffer outBuffer = new StringBuffer(len);  

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

054        aChar = theString.charAt(x++);  

055        if (aChar == '\\') {  

056         aChar = theString.charAt(x++);  

057         if (aChar == 'u') {  

058          // Read the xxxx  

059          int value = 0;  

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

061           aChar = theString.charAt(x++);  

062           switch (aChar) {  

063           case '0':  

064           case '1':  

065           case '2':  

066           case '3':  

067           case '4':  

068           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();  

      }  


2011年8月02日 14:46
0 0

String str="\u4e0a\u6d77";
str = new String(str.getBytes("Unicode"),"UTF-16");

在 Java 中直接使用Unicode 转码时会按照UTF-16LE 的方式拆分,并加上 BOM。

2011年8月02日 14:38
0 0

你是这个意思?
String str="\u4e0a\u6d77";
System.out.println(str);

2011年8月02日 14:11
0 0

Unicode中就包含中文啊……

2011年8月02日 14:07

相关推荐

Global site tag (gtag.js) - Google Analytics