CFURLCreateStringByAddingPercentEscapes
时间: 2024-01-20 11:03:09 浏览: 31
`CFURLCreateStringByAddingPercentEscapes` 是 Core Foundation 框架中的一个函数,用于对 URL 进行编码。该函数接受多个参数,包括需要编码的字符串、字符集等。
下面是一个示例:
```objc
NSString *originalString = @"http://example.com/搜索?q=测试";
CFStringRef cfOriginalString = (__bridge CFStringRef)originalString;
CFStringRef cfCharactersToLeaveUnescaped = CFSTR("");
CFStringRef cfLegalURLCharactersToBeEscaped = CFSTR("!$&'()*+,;=:@?/[]");
CFStringRef cfEncodedString = CFURLCreateStringByAddingPercentEscapes(kCFAllocatorDefault, cfOriginalString, cfCharactersToLeaveUnescaped, cfLegalURLCharactersToBeEscaped, kCFStringEncodingUTF8);
NSString *encodedString = (__bridge_transfer NSString *)cfEncodedString;
NSLog(@"%@", encodedString);
```
上述代码将 `originalString` 变量中的 URL 进行编码,只保留 URL 中允许的字符,`encodedString` 变量中存储编码后的 URL。
需要注意的是,`CFURLCreateStringByAddingPercentEscapes` 函数返回的是一个 Core Foundation 类型的字符串,需要通过 `__bridge_transfer` 转换成 Objective-C 类型的字符串。此外,这个函数的第三个参数可以为空,表示将所有字符都进行编码。