我有一个带有表情符号的字符串

I love 🍿

我需要用它的 html 实体来逃避爆米花表情符号,所以我得到
I love 🍿

我正在用 Java 编写我的代码,我一直在尝试不同的 StringEscapeUtils 库,但没有让它工作。请帮我弄清楚我可以用什么来逃避爆米花等特殊字符。

以供引用:

Unicode Character Information

Unicode 8.0 (June 2015)

最佳答案

我会使用 CharSequence::codePoints 来获取代码点的 IntStream 并将它们映射到字符串,然后收集它们,连接到单个字符串:

public String escape(final String s) {
    return s.codePoints()
        .mapToObj(codePoint -> codePoint > 127 ?
            "&#x" + Integer.toHexString(codePoint) + ";" :
             new String(Character.toChars(codePoint)))
    .collect(Collectors.joining());
}

对于指定的输入,这会产生:
I love 🍿

关于java - 将 Unicode 字符 'POPCORN' 转义为 HTML 实体,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/57532687/

10-10 06:34