Pro*_*ole 27 objective-c emoji ios5 nsstringencoding
我想在iOS 5中将表情符号转换为unicode角色.
例如,转换 到
\ue415
.
我去NSStringEncoding在NSString类参考.
在iOS 4的,NSUTF16BigEndianStringEncoding
并NSUTF32BigEndianStringEncoding
给了我<e415>
和<0000e415>
分别,这是相当接近我想要的东西.
在iOS 5中,结果不同.它咆哮<d83dde04>
而且<0001f604>
.
我怎样才能得到\ue415
的在iOS 5?谢谢.
小智 91
请试试这个:
将表情符号转换为unicode
NSData *data = [strEmo dataUsingEncoding:NSNonLossyASCIIStringEncoding];
NSString *goodValue = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding];
Run Code Online (Sandbox Code Playgroud)很容易将unicode转换为表情符号
NSData *data = [strEmo dataUsingEncoding:NSUTF8StringEncoding];
NSString *goodValue = [[NSString alloc] initWithData:data encoding:NSNonLossyASCIIStringEncoding];
Run Code Online (Sandbox Code Playgroud)Ash*_*ark 14
\ue415
是表情符号的遗留编码的一部分,并且特定于某些日本运营商.SoftBank,NTT和docomo都有自己的私人表情符号字符集.
iOS 5已移至新指定的表情符号字符平面的Unicode 6.0支持,并且<0001f604>
是该字符的Unicode代码点.关于这个的维基百科条目引用了一个EmojiSources.txt映射文件,如果你真的需要获取旧的私有用字符代码,你需要使用它来自己进行映射.
http://en.wikipedia.org/wiki/Emoji
在UILabel中表达不同的表情符号:
NSString *bellEmojiString = @"U+1F514";
label.text = [NSSting stringWithFormat:@"Table: %@", @"\U0001F514"];
Run Code Online (Sandbox Code Playgroud)
你应该小心+
用3 zero
位数替换
小智 7
转换回: -
NSData *newdata=[recievedstring dataUsingEncoding:NSUTF8StringEncoding
allowLossyConversion:YES];
NSString *mystring=[[NSString alloc] initWithData:newdata encoding:NSNonLossyASCIIStringEncoding];
Run Code Online (Sandbox Code Playgroud)
试试这个:http://opensource.apple.com/source/ICU/ICU-461.13/icuSources/data/translit/Any_SoftbankSMS.txt
在iOS5上,使用左侧代码,在iOS 4及更低版本上,使用正确的代码.