2013-12-19 34 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");