iOS9之后 ,字符串NSUTF8StringEncoding
网络请求拼接中文参数,用户名登陆等很多地方会用到中文,UTF8编码显得颇为重要,但是iOS9之后,我们常用的的方法已经废弃,当然了,有废弃肯定就有新的来代替,在此记录一下.
1.编码
NSString*hStr =@"你好啊";
NSString*hString = [hStr stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];
NSLog(@"hString === %@",hString);
上面这样写是会有警告的,
![](https://img.haomeiwen.com/i1297215/b03f0a03057201e0.png)
输出结果:
hString === %E4%BD%A0%E5%A5%BD%E5%95%8A
这样写就可以了:
NSString*hString = [hStr stringByAddingPercentEncodingWithAllowedCharacters:[NSCharacterSet URLQueryAllowedCharacterSet]];
结果是一样的
hString === %E4%BD%A0%E5%A5%BD%E5%95%8A
2.解码
NSString*str3 =@"\u5982\u4f55\u8054\u7cfb\u5ba2\u670d\u4eba\u5458\uff1f";
NSString*str5 = [str3 stringByReplacingPercentEscapesUsingEncoding:NSUTF8StringEncoding];
NSLog(@"str5 ==== %@",str5);
同样会有警告;
![](http://upload-images.jianshu.io/upload_images/1297215-4c0596d1f2ae75b8.png)
输出结果:
str5 ====如何联系客服人员?
下面消除警告,修改为:
NSString*str5 = [str3 stringByRemovingPercentEncoding];
结果也是一样的:
str5 ====如何联系客服人员?