ios - 将字符串与表情符号

时间:2018-02-13 05:10:33

标签: python ios objective-c emoji utf8mb4

我已更新我的服务器端代码以存储utf8mb4类型。在ios中我通过转换为(NSMutableData *)[dataStr dataUsingEncoding:NSUTF8StringEncoding]将“[[UIDevice currentDevice] name]”发送到服务器

现在,当我找回设备列表时,我需要比较名称并找出哪一个是当前设备。

这里我无法比较名称中是否有表情符号。

第一个问题是获得正确的设备名称长度。对于1个表情符号字符length,函数将返回2.使用

解决它
[[[UIDevice currentDevice] name] lengthOfBytesUsingEncoding:NSUTF32StringEncoding] / 4

第二个问题是与服务器发送的名称共存。服务器发送名称,如“Ipad \ Uf643”和

NSData *dataenc = [[[UIDevice currentDevice] name] dataUsingEncoding:NSNonLossyASCIIStringEncoding];
        NSString * deviceName = [[NSString alloc]initWithData:dataenc encoding:NSUTF8StringEncoding];

给出“Ipad \ ud83d \ ude43”

这是同一表情符号的两种不同形式。 Python和客观C表示是不同的。

然后比较我尝试了isEqualToStringlocalizedCompare。无法弄清楚如何做到这一点。 “Ipad \ Uf643”也显示为?

0 个答案:

没有答案