-2

这是我的字符串。

NSString *str=@"A & B";

现在我将其转换为 NSUTF8StringEncoding。

str = [str stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];
NSLog(@"str: %@", str);

空格替换为 %20,但 & 不替换为 %26。

nslog 显示

str: A%20&%20B

这也行不通

NSString *str=@"(A) & (B)";
str = [str stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];
NSLog(@"str: %@", str);

nslog 显示

str: (A)%20&%20(B)

我需要这个,因为我必须将它作为 webservice 中的参数值传递。任何人都有这个想法。请帮我解决这个问题。很好的答案将不胜感激

4

1 回答 1

3

你可以用它CFURLCreateStringByAddingPercentEscapes()来做到这一点:

NSString *string = ...;
NSString *encodedString = CFBridgingRelease(CFURLCreateStringByAddingPercentEscapes(kCFAllocatorDefault, (__bridge CFStringRef)string, NULL, CFSTR("!*'();:@&=+$,/?%#[]"), kCFStringEncodingUTF8));
于 2013-02-28T10:09:15.533 回答