Objective c 使用StringByAddingPercentescapesusingEncode对逗号进行编码

Objective c 使用StringByAddingPercentescapesusingEncode对逗号进行编码,objective-c,Objective C,为什么逗号没有被编码?我原以为是%2C (lldb) po [@"," stringByAddingPercentEscapesUsingEncoding:4] (id) $24 = 0x0a8fbfd0 , 此方法将仅替换URL中无效的特殊字符。因为逗号是有效的,他会一直这样 尝试使用此字符串检查: [@",éà /" stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding]; 要替换逗号等其他字符,您必须自己替换…如

为什么逗号没有被编码?我原以为是%2C

(lldb) po [@"," stringByAddingPercentEscapesUsingEncoding:4]
(id) $24 = 0x0a8fbfd0 , 

此方法将仅替换URL中无效的特殊字符。因为逗号是有效的,他会一直这样

尝试使用此字符串检查:

[@",éà /" stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];

要替换逗号等其他字符,您必须自己替换…

如@DayS所述,因为逗号是合法的URL字符。但是,如果您想控制转义的字符,请查看
CFURLCreateStringByAddingPercentEscapes()

NSString *toencode = @",";
NSString *result =
CFBridgingRelease(CFURLCreateStringByAddingPercentEscapes(NULL,
                                                          (__bridge CFTypeRef)toencode,
                                                          NULL,
                                                          CFSTR(","),
                                                          kCFStringEncodingUTF8));
NSLog(@"%@", result);