无法在UIlabel中正确显示表情符号

时间:2014-12-18 07:05:46

标签: ios objective-c uilabel emoji

我正在尝试将emojis保存到服务器以及以后接收它们。

我之前使用过以下代码

NSData *data = [strEmo dataUsingEncoding:NSNonLossyASCIIStringEncoding];
NSString *goodValue = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding];

NSData *data1 = [strEmo dataUsingEncoding:NSUTF8StringEncoding];
NSString *goodValue = [[NSString alloc] initWithData:data encoding:NSNonLossyASCIIStringEncoding];

它为表情符号生成Hashcode。但解码并不起作用。所以我跳过了使用此代码的想法。

然后我使用了第三方NSString + HTML.h类。哪个发送并轻松收到表情符号。但 现在的问题是,当我在显示数据的UI标签上有很多表情符号时,表情符号会被扭曲,如果我保存了20个表情符号,它只显示12-13。

我添加了Pic以供参考 enter image description here

其中黄色部分为UIlabel,背面为黄色

1 个答案:

答案 0 :(得分:0)

Buddy为什么要连续两次更改Data中的字符串只需使用此

NSString *uniText = [NSString stringWithUTF8String:[strEmo UTF8String]];
NSData *msgData = [uniText dataUsingEncoding:NSNonLossyASCIIStringEncoding];
NSString *readyString = [[NSString alloc] initWithData:msgData encoding:NSUTF8StringEncoding];

首先将您的字符串转换为常量C字符,然后使用UTF8编码将其转换为字符串,现在使用NSData编码将其转换为NSNonLossyASCIIStringEncoding as(7位详细ASCII表示所有Unicode字符)然后再次使用unicode characters准备发送字符串。希望这应该可行,因为它在我的代码中工作正常。