我需要拦截一个表情入口,改成自己的表情。 当我截取表情符号时,例如“带有医用口罩的脸(\U+1F604)”,我得到一个UTF-16字符(0xD83D 0xDE04),是否可以将此字符值转换为unicode值?
我需要将 0xD83D 0xDE04 转换为\u1f604。
谢谢
最佳答案
I get an UTF-16 char (0xD83D 0xDE04), Is it possible to convert this char value to the unicode value?
对于字符串中的单个代码点,您可以使用以下方法将其转换为整数:
int codepoint = "\uD83D\uDE04".codePointAt(0); // 0x1F604
然而,用codePointCount
/codePointAt
检查整个字符串是相当乏味的。 Java/Dalvik 的 String 类型与 UTF-16 代码单元紧密相关,而 codePoint 方法是一个集成不良的事后想法。如果您只是希望用其他字符串替换表情符号,那么您最好使用字符串类型中出现的两个代码单元进行纯字符串替换或正则表达式,例如 text.replace("\uD83D\uDE04", ":-D")
。
(顺便说一句,戴医用口罩的脸是U+1F637。)
关于android - 从字符UTF-16获取表情unicode,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20689645/