httpbody中字符编码问题-iOS解决方案

httpbody中字符编码问题

在工作中遇到一个问题,本来可以直接将字典转换成json,再转换成nsdata,设置到httpbody中
就可以请求服务器了,可是服务器不方便解析(其实是做服务器开发的不知道怎么解析收到的数据|_|)
最后只能将字典遍历键值对变成查询字符串的样子设置在body中

For Example:

1
2
3
4
5
6
{
"username" : "yutiya",
"age" : 18
}
变成:
username=yutiya&age=18

通常上传到服务器的数据都需要编码一次,不过我上传的数据全是[a-zA-Z0-9]等等,不用编码也是可以的
可是问题出现了,上传到服务器的数据中有+号,看了阮一峰的博客,从中可以看到+在服务器会被自动解析成空格
简直是见了鬼,然后就得改代码呗

1
2
3
4
NSString *str = @"username=yutiya&lock=abc+bbc+ccc";
NSLog(@"%@", [str stringByReplacingPercentEscapesUsingEncoding:NSUTF8StringEncoding]);
console >>>:
2015-07-30 14:51:07.212 httpbody中的字符编码[6470:156038] username=yutiya&lock=abc+bbc+ccc

然而并没有什么卵用,好,我换了一个方法

Your browser is out-of-date!

Update your browser to view this website correctly. Update my browser now

×