问题编码一个string与百分之逃脱iphone
这是我的string。
NSString *str=@"A & B";
现在我将它转换为NSUTF8StringEncoding。
str = [str stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding]; NSLog(@"str: %@", str);
空格replace为%20,但&不会replace为%26。
nslog显示
str: A%20&%20B
这也是行不通的
NSString *str=@"(A) & (B)"; str = [str stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding]; NSLog(@"str: %@", str);
nslog显示
str: (A)%20&%20(B)
我需要这个,因为我必须通过这个参数值在web服务。 任何人都有这个想法。 请帮我解决这个问题。 很好的答案将不胜感激
你可以使用CFURLCreateStringByAddingPercentEscapes()
来做到这一点:
NSString *string = ...; NSString *encodedString = CFBridgingRelease(CFURLCreateStringByAddingPercentEscapes(kCFAllocatorDefault, (__bridge CFStringRef)string, NULL, CFSTR("!*'();:@&=+$,/?%#[]"), kCFStringEncodingUTF8));