NSMutableUrlRequest吃加号

Mik*_*ike 5 iphone nsstring nsdata nsmutableurlrequest

我创建了NSMutableUrlRequest来将数据发送到服务器,向其中添加所有必需的字段,然后添加用于发送的字符串,如下所示:

[theRequest setHTTPBody:[postString dataUsingEncoding: NSUTF8StringEncoding]];
Run Code Online (Sandbox Code Playgroud)

postString是通常的NSString。

问题是,当我在服务器上收到此请求时,所有加号(+)从http正文中消失。因此,如果我在iPhone上安装了“ abcde + fghj”,则在服务器上会收到“ abcde fghj””。

使用dataUsingEncoding:NSUTF8StringEncoding会不会是一些编码问题?还是某些NSMutableUrlRequest剥离功能?我该怎么做才能使其停止剥离加号?我需要在服务器端接收UTF8字符串。

Fra*_*rar 4

加号 (+) 是URL 查询字符串部分中空格的标准快捷方式。如果您想要一个文字 +,请将其编码为 %2b。

  • 谢谢,现在我明白了。看来我需要通过 stringByAddingPercentEscapesUsingEncoding: 首先运行我的字符串,然后我需要通过 ReplaceOccurrencesOfString:@"+" withString:@"%2B" 运行它,还有几个不同字符的替换,因为 stringByAddingPercentEscapesUsingEncoding: 不逃离他们所有人 (2认同)