Ios5 ios中的URL编码字符串失败
我正在尝试使用ARC对iOS 5应用程序中的字符串进行url编码 我就是这样做的:Ios5 ios中的URL编码字符串失败,ios5,automatic-ref-counting,urlencode,cfstring,Ios5,Automatic Ref Counting,Urlencode,Cfstring,我正在尝试使用ARC对iOS 5应用程序中的字符串进行url编码 我就是这样做的: - (NSString *)escape:(NSString *)text { return (__bridge NSString *)CFURLCreateStringByAddingPercentEscapes(NULL, (__bridge CFStringRef)text, NULL,
- (NSString *)escape:(NSString *)text
{
return (__bridge NSString *)CFURLCreateStringByAddingPercentEscapes(NULL,
(__bridge CFStringRef)text, NULL,
(CFStringRef)@"!*'();:@&=+$,/?%#[]",
kCFStringEncodingUTF8);
}
然后我用如下测试数据将其称为:
NSLog([self escape:@"kalel///&&&???"]);
但是我从NSLog
得到的输出是:
kalel0.0000000.0000000.00000022623F0.0000000.000000
这似乎不太正确,但不管怎样,我都无法正确执行您的
escape
功能很好。问题在于您调用NSLog
的方式:
escape
为您的输入生成字符串kalel%2F%2F%2F%26%26%3F%3F%3F
NSLog
将此字符串解释为格式字符串,并在kalel
word之后以浮点数形式打印一些垃圾
您应该始终使用字符串常量作为第一个参数调用NSLog
,例如:
NSLog(@"%@", [self escape:@"kalel///&&&???"]);
p.S.您在转义
中有内存泄漏---在将保留的CF对象转移到目标C空间时,您应该返回(\uuu bridge\u transfer NSString*)