issue in encoding a string with percent escaping iphone

旧巷老猫 提交于 2019-12-23 06:29:16

问题


This is my string.

NSString *str=@"A & B";

now i am converting it to NSUTF8StringEncoding.

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

space is replaced with %20 but & is not replaced with %26.

nslog show

str: A%20&%20B

This is also not working

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

nslog show

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

I need this because i have to pass this as parameter value in webservice. Anybody have idea for this. Please help me for this issue. Nice answer will be appreciated


回答1:


You can use CFURLCreateStringByAddingPercentEscapes() to do that:

NSString *string = ...;
NSString *encodedString = CFBridgingRelease(CFURLCreateStringByAddingPercentEscapes(kCFAllocatorDefault, (__bridge CFStringRef)string, NULL, CFSTR("!*'();:@&=+$,/?%#[]"), kCFStringEncodingUTF8));


来源:https://stackoverflow.com/questions/15132472/issue-in-encoding-a-string-with-percent-escaping-iphone

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!