2013-12-19 32 views
2

我需要截取一个表情符号条目并更改为我自己的图释。 当我截取一个表情符号,例如,脸部医疗面具(\ U + 1F604),我得到一个UTF-16字符(0xD83D 0xDE04),是否有可能将此char值转换为unicode值?从char UTF-16获取图释unicode

我需要将0xD83D 0xDE04转换为\ u1f604。

谢谢,

回答

3

我得到一个UTF-16字符(0xD83D 0xDE04),是否有可能这个字符值转换为Unicode值?

对于刚刚在字符串中的一个代码点,你可以用转换为整数:

int codepoint = "\uD83D\uDE04".codePointAt(0); // 0x1F604 

它,但相当繁琐的整串去了与codePointCount/codePointAt。 Java/Dalvik的String类型与UTF-16代码单元紧密相关,并且codePoint方法是事后考虑不足的。如果您只是希望用其他字符串替换表情符号,则最好使用字符串类型中显示的两个代码单位进行纯字符串替换或正则表达式,例如text.replace("\uD83D\uDE04", ":-D")

(顺便提一下,医用面罩是U + 1F637)

0

\u1f604是表情符号的UTF-32编码。您可以将这种方式:

byte[] bytes = "\uD83D\uDE37".getBytes("UTF-32BE");