美文网首页
解析Unicode字符串

解析Unicode字符串

作者: 淡定丶说的是 | 来源:发表于2017-04-14 22:08 被阅读29次
/**
     * 解析unicode字符串
     * @param unicodeStr
     * @return
     */
    public static String readUnicodeStr(String unicodeStr) {
        StringBuilder buf = new StringBuilder();

        for (int i = 0; i < unicodeStr.length(); i++) {
            char char1 = unicodeStr.charAt(i);
            if (char1 == '\\' && isUnicode(unicodeStr, i)) {
                String cStr = unicodeStr.substring(i + 2, i + 6);
                int cInt = Integer.parseInt(cStr,16);
                buf.append((char) cInt);
                // 跨过当前unicode码,因为还有i++,所以这里i加5,而不是6
                i = i + 5;
            } else {
                buf.append(char1);
            }
        }
        return buf.toString();
    }

    // 判断以index从i开始的串,是不是unicode码
    private static boolean isUnicode(String unicodeStr, int i) {
        int len = unicodeStr.length();
        int remain = len - i;
        // unicode码,反斜杠后还有5个字符 uxxxx
        if (remain < 5)
            return false;

        char flag2 = unicodeStr.charAt(i + 1);
        if (flag2 != 'u')
            return false;
        String nextFour = unicodeStr.substring(i + 2, i + 6);
        return isHexStr(nextFour);
    }

    /** hex str 0-9 a-f A-F */
    private static boolean isHexStr(String str) {
        for (int i = 0; i < str.length(); i++) {
            char ch = str.charAt(i);
            boolean isHex = ch >= '0' && ch <= '9' || ch >= 'a' && ch <= 'f' || ch >= 'A' && ch <= 'F';
            if (!isHex)
                return false;
        }
        return true;
    }

来自:http://blog.csdn.net/shigang_xing/article/details/8263728

相关文章

  • 解析Unicode字符串

    来自:http://blog.csdn.net/shigang_xing/article/details/8263728

  • 字符串扩展

    字符串扩展 unicode支持\u{unicode码点} 表示unicode字符codePointAt() 字符码...

  • Swift中 Character(二)

    现在的编程语言都支持Unicode字符串,但是处理Unicode字符串又是一个复杂的事情,原因就是Unicode并...

  • python字符串前面加u,r,b的含义

    u/U:表示unicode字符串 不是仅仅是针对中文, 可以针对任何的字符串,代表是对字符串进行unicode编码...

  • python字符串前面加u,r,b的含义

    u/U:表示unicode字符串不是仅仅是针对中文, 可以针对任何的字符串,代表是对字符串进行unicode编码。...

  • 编码问题

    将unicode转换成字符串,即json.dumps(xxx),Python读取的字符串已经是unicode编码,...

  • python 中的json模块以及中文编码问题

    python中的字符串分普通字符串和unicode字符串,一般从数据库中读取的字符串会自动被转换为unicode字...

  • String

    Java字符串是Unicode字符序列。如串"Java\u2122"有5个Unicode字符组成。Java中字符串...

  • 链接收纳

    json在线解析 https://www.json.cn/在线unicode转中文,中文转unicode htt...

  • 第2模块第1章04文件处理——二进制模式

    python3中所有的字符串都是unicode. python3所有的字符串都是unicode f = open(...

网友评论

      本文标题:解析Unicode字符串

      本文链接:https://www.haomeiwen.com/subject/bypgattx.html