objective-cios5emojinsstringencoding

iOS 5: How to convert an Emoji to a unicode character?


I want to convert an Emoji to a unicode character in iOS 5.

For example, converting smiling face with open mouth and cold sweat to \ue415.

I went to NSStringEncoding in NSString Class Reference.

In iOS 4, NSUTF16BigEndianStringEncoding and NSUTF32BigEndianStringEncoding gave me <e415> and <0000e415>, respectively, which are quite close to what I want.

In iOS 5, the results are different. It gaves <d83dde04> and <0001f604>.

How can I get \ue415 for smiling face with open mouth and cold sweat in iOS 5? Thank you.


Solution

  • \ue415 is part of the legacy encoding for emoji and is specific to certain Japanese carriers. SoftBank, NTT and docomo all had their own private emoji character sets.

    iOS 5 has moved to the newly specified Unicode 6.0 support for emoji character planes and <0001f604> is the Unicode code point for that character. The wikipedia entry about this references an EmojiSources.txt mapping file that you'll need to use to do the mapping yourself if you really need to get the old private-use character codes.

    http://en.wikipedia.org/wiki/Emoji