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及更低版本上,使用正确的代码.
| 归档时间: |
|
| 查看次数: |
48600 次 |
| 最近记录: |