ios比较字符串与表情符号ch

2024-09-20 03:38:02 发布

您现在位置:Python中文网/ 问答频道 /正文

我已经更新了服务器端代码以存储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表示法是不同的。你知道吗

为了比较,我试着isEqualToStringlocalizedCompare。我不知道怎么做。“Ipad\Uf643”也显示为?。你知道吗


Tags: 代码name名称类型服务器端服务器发送表情符号utf8mb4