gpt4 book ai didi

iphone - CFURLCreateStringByAddingPercentEscapes 返回 NULL

转载 作者:塔克拉玛干 更新时间:2023-11-02 20:22:09 24 4
gpt4 key购买 nike

我对用于百分比转义非法符号的类别方法有疑问。

这是我用于该任务的代码:

@implementation NSString (URLEncoding)
-(NSString *)urlEncodeUsingEncoding:(NSStringEncoding)encoding {
NSString *s = (NSString *)CFURLCreateStringByAddingPercentEscapes(NULL, (CFStringRef)self, NULL, (CFStringRef)@"!*'\"();:@&=+$,/?%#[]% ",CFStringConvertNSStringEncodingToEncoding(encoding));
NSLog(@"S: %@, Self: %@", s, self);
return [s autorelease];
}
@end

当我在没有上述匹配字符串中的任何符号的字符串上运行此方法时,该方法运行正常并且相同的字符串返回给我。

例如,如果我有一个像 @"test" 这样的字符串,它将输出:

S: test, Self: test

但是如果我改为使用像 @"test&symbols" 这样的字符串,它将输出:

S: null, Self: test&symbols

因此,使用 CFURLCreateStringByAddingPercentEscapes 似乎有些问题。

现在我想转义诸如 & 之类的符号,因为它们可以出现在用作查询字符串值的字符串中,这会导致查询字符串被误解。

关于这里可能出现的问题有什么想法吗?

提前致谢!/马格纳斯

最佳答案

在发现我的大错之后。
我被告知要自己回答这个问题。

我做错了什么,我没有将 NSStringEncoding 值传递给方法,例如 NSUTF8StringEncoding 但我没有传递 CF 值,例如 kCFStringEncodingUTF8.

该值通过转换器传递,使其成为导致错误的 CF 值,并且它已经具有正确的类型。

对于给您带来的不便,我们深表歉意。

-马格努斯

关于iphone - CFURLCreateStringByAddingPercentEscapes 返回 NULL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10497698/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com