- public class FontUtil {public static void main(String[] args) {
- System.out.println(chinaToUnicode("未登陆!"));
- System.out.println(decodeUnicode("\u672a\u767b\u9646\uff01"));
- }
- /**
- * 把中文转成 Unicode 码
- *
- * @param str
- * @return
- */
- public static String chinaToUnicode(String str) {
- String result = "";
- for (int i = 0; i <str.length(); i++) {
- int chr1 = (char) str.charAt(i);
- if (chr1>= 19968 && chr1 <= 171941) {// 汉字范围 \u4e00-\u9fa5 (中文)
- result += "\\u" + Integer.toHexString(chr1);
- } else {
- result += str.charAt(i);
- }
- }
- return result;
- }
- /**
- * 判断是否为中文字符
- *
- * @param c
- * @return
- */
- public static boolean isChinese(char c) {
- Character.UnicodeBlock ub = Character.UnicodeBlock.of(c);
- if (ub == Character.UnicodeBlock.CJK_UNIFIED_IDEOGRAPHS
- || ub == Character.UnicodeBlock.CJK_COMPATIBILITY_IDEOGRAPHS
- || ub == Character.UnicodeBlock.CJK_UNIFIED_IDEOGRAPHS_EXTENSION_A
- || ub == Character.UnicodeBlock.GENERAL_PUNCTUATION
- || ub == Character.UnicodeBlock.CJK_SYMBOLS_AND_PUNCTUATION
- || ub == Character.UnicodeBlock.HALFWIDTH_AND_FULLWIDTH_FORMS) {
- return true;
- }
- return false;
- }
- //Unicode 转中文
- public static String decodeUnicode(final String unicode) {
- StringBuffer string = new StringBuffer();
- String[] hex = unicode.split("\\\\u");
- for (int i = 0; i <hex.length; i++) {
- try {
- // 汉字范围 \u4e00-\u9fa5 (中文)
- if(hex[i].length()>=4){// 取前四个, 判断是否是汉字
- String chinese = hex[i].substring(0, 4);
- try {
- int chr = Integer.parseInt(chinese, 16);
- boolean isChinese = isChinese((char) chr);
- // 转化成功, 判断是否在 汉字范围内
- if (isChinese){// 在汉字范围内
- // 追加成 string
- string.append((char) chr);
- // 并且追加 后面的字符
- String behindString = hex[i].substring(4);
- string.append(behindString);
- }else {
- string.append(hex[i]);
- }
- } catch (NumberFormatException e1) {
- string.append(hex[i]);
- }
- }else{
- string.append(hex[i]);
- }
- } catch (NumberFormatException e) {
- string.append(hex[i]);
- }
- }
- return string.toString();
- }
- }
来源: http://www.bubuko.com/infodetail-2617044.html