如何将文本中的Unicode转换成中文

 

  Unicode 是为了解决传统的字符编码方案的局限而产生的,例如ISO 8859所定义的字符虽然在不同的国家中广泛地使用,可是在不同国家间却经常出现不兼容的情况。很多传统的编码方式都有一个共同的问题,即容许电脑处理双语环境(通常使用拉丁字母以及其本地语言),但却无法同时支持多语言环境(指可同时处理多种语言混合的情况)。

/**
* unicode 转换成 中文
* @param str
* @return
*/
public static String decodeUnicode(String str) {
    char aChar;
    int len = str.length();
    StringBuffer outBuffer = new StringBuffer(len);
    for (int x = 0; x < len;) {
        aChar = str.charAt(x++);
        if (aChar == '\\') {
        aChar = str.charAt(x++);
        if (aChar == 'u') {
            // Read the xxxx
            int value = 0;
            for (int i = 0; i < 4; i++) {
                aChar = str.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();
}

 

你可能感兴趣的:(unicode)