我已经更新了服务器端代码以存储utf8mb4类型。在ios中,我通过转换为(NSMutableData*)[dataStr dataUsin将“[[UIDevice currentDevice]name]”发送到服务器gEncoding:NSUTF8StringEncoding]你知道吗
现在,当我回到设备列表时,我需要比较名称并找出哪个是当前设备。你知道吗
这里我无法比较名字中是否有表情符号。你知道吗
第一个问题是获取设备名称的正确长度。对于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和objective C表示法是不同的。你知道吗
为了比较,我试着isEqualToString
,localizedCompare
。我不知道怎么做。“Ipad\Uf643”也显示为?
。你知道吗
目前没有回答
相关问题 更多 >
编程相关推荐