I want to convert an Emoji to a unicode character in iOS 5.
For example, converting 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 in iOS 5? Thank you.
\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
Convert back to:--
if your emoji doesn't take a round trip (from ios to a backend server and back to ios), then you shouldn't have any problem ios (at least 4.2+) handles the encoding correctly and you don't have to do anything. but if your app interact with a server, have you suspect that your server return value is wrong? i.e. json encoded wrong.
I had the same problem, after digging for hours and finally found this answer that works for me: https://stackoverflow.com/a/8339255/1090945
If you are using rails as your server, this is all you need to do. No need to do anything in ios/xcode, just pass the NSString without doing any UTF8/16 encoding stuff to the server.
Postegre stores the code correctly, it's just when you send the json response back to your ios client, assuming you do render json:@message, the json encoding has problem.
you could test whether you are having json encoding problem in your rails console by doing as simple test in your console
test.to_json
if it prints out "{\"smiley\":\"\uf604\"}" (notice the 1 is lost), then you have this problem. and the patch from the link will fix it.
Please try this :
Convert Emoji to unicode
Very easy to convert unicode to Emoji
try this : http://opensource.apple.com/source/ICU/ICU-461.13/icuSources/data/translit/Any_SoftbankSMS.txt
on iOS5, use left code, on iOS 4 and below, use the right code.
dispalying emoji in UILabel:
you should be careful replace
+
with 3zero
digit