如何 read/get Java 中表情符号的 unicode 值

How to read/get unicode value for an emoji in Java

我们正在尝试让我们的应用程序接受表情符号。我们正在尝试将表情符号限制为来自 this list.

的表情符号

所以,我正在尝试读取表情符号的 unicode 值(例如,U+1F600)——这样我就可以验证用户输入的表情符号来自上面的列表。

有人可以帮助我如何读取表情符号的 unicode 值吗?或任何其他方式我可以实现此验证?使用编码值等?

        }  

String actualEmojiString = "";
            for(int i=0; i< actualEmojiString.codePointCount(0, actualEmojiString.length()); i++) {
                int codePoint = actualEmojiString.charAt(i);
                if(Character.isSurrogate(actualEmojiString.charAt(i))) {
                    codePoint = Character.toCodePoint(actualEmojiString.charAt(i), actualEmojiString.charAt(i));
                }
                System.out.println( "HexCode value for emoji: [" +  actualEmojiString.charAt(i) + "] is [" +"U+" + Integer.toHexString(codePoint | 0x10000).substring(0) +"]"
                        + "["+"\u" + Integer.toHexString(codePoint | 0x10000).substring(1) + "]");

输出:

HexCode value for emoji: [?] is [U+1f03d][\uf03d]
HexCode value for emoji: [?] is [U+190200][\u90200]

您通过混合代码点和字符使代码过于复杂。而是使用 String.codePoints() 方法:

"".codePoints().mapToObj(Integer::toHexString).forEach(System.out::println);

将 unicode 值打印为十六进制:

1f600
1f602

然而,这可能根本不需要,因为 Java 支持 unicode String 文字。要检查文本是否包含表情符号,您只需执行以下操作:

"".contains("");