Unicode編碼格式中文互轉

源码展示:

public class UnicodeUtil {

    /**
     * 中文转unicode字符串
     * 
     * @param cn
     * @return
     */
    public static String cnToUnicode(String cn) {
        StringBuilder sb = new StringBuilder();
        if (cn == null || cn.length() == 0) {
            return sb.toString();
        }
        char[] chars = cn.toCharArray();

        for (char c : chars) {
            sb.append("\\u" + Integer.toString(c, 16));
        }

        return sb.toString();
    }

    /**
     * unicode字符串转中文
     * 
     * @param unicodeStr
     * @return
     */
    public static String unicodeToCn(String unicodeStr) {

        StringBuilder sb = new StringBuilder();
        if (unicodeStr == null || unicodeStr.length() == 0) {
            return sb.toString();
        }
        unicodeStr = unicodeStr.substring(2);
        String[] arrs = unicodeStr.split("\\\\u");
        for (String arr : arrs) {
            sb.append((char) Integer.valueOf(arr, 16).intValue());
        }
        return sb.toString();
    }
    
    // main方法测试
    public static void main(String[] args) {
        String[] strArr = new String[4];
        strArr[0] = cnToUnicode("普通的字符描述!");
        strArr[1] = cnToUnicode("四个空格:    。 ");
        strArr[2] = cnToUnicode(null);
        strArr[3] = cnToUnicode("制表符:\t。");

        String[] unicode = new String[4];
        int i = 0;
        for (String str : strArr) {
            System.out.println(str);
            unicode[i] = unicodeToCn(str);
            i++;
        }

        for (String uc : unicode) {
            System.out.println(uc);
        }

    }
}

测试输出结果:

\u666e\u901a\u7684\u5b57\u7b26\u63cf\u8ff0\uff01
\u56db\u4e2a\u7a7a\u683c\uff1a\u20\u20\u20\u20\u3002\u20

\u5236\u8868\u7b26\uff1a\u9\u3002
普通的字符描述!
四个空格:    。 

制表符:    。

你可能感兴趣的:(Unicode編碼格式中文互轉)