我正在使用以下代码片段对字符串进行编码,我需要将其发送到REST Api的
NSString* content=@"Test &a=b";
NSString* encodedString=[content stringByAddingPercentEscapesUsingEncoding:NSASCIIStringEncoding];
NSLog(@"encodedString :%@",encodedString);
获得以下输出
**Test%20&a=b**
为什么“&”和“=”字符不编码?
但是这个问题是通过使用“CFURLCreateStringByAddingPercentEscapes”方法解决的
请帮忙吗?
答案 0 :(得分:1)
看起来NSASCIIStringEncoding
将转换为7位Ascii,+
为43且&
为38.由于它们是有效的7位ASCII字符,我不希望它们用你所拥有的东西进行转换。来源 -
虽然CFURLCreateStringByAddingPercentEscapes将
用等效的百分比替换某些字符 基于指定编码的序列
来源: