使用stringByAddingPercentEscapesUsingEncoding编码逗号

时间:2012-09-14 14:45:58

标签: objective-c

为什么逗号不能编码?我原以为它是%2C。

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

2 个答案:

答案 0 :(得分:2)

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

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

答案 1 :(得分:1)

此方法仅替换在URL中无效的特殊字符。由于逗号是有效的,他会保持这样。

尝试使用此字符串进行检查:

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

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