1

为什么逗号不被编码?我期待它是 %2C。

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

2 回答 2

2

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

NSString *toencode = @",";
NSString *result =
CFBridgingRelease(CFURLCreateStringByAddingPercentEscapes(NULL,
                                                          (__bridge CFTypeRef)toencode,
                                                          NULL,
                                                          CFSTR(","),
                                                          kCFStringEncodingUTF8));
NSLog(@"%@", result);
于 2012-09-14T15:17:07.653 回答
1

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

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

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

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

于 2012-09-14T14:55:54.520 回答