最近抓了一个APP的接口,使用它的数据(原谅我不厚道),在请求的时候用AFNetworking时,将带有汉字的参数直接装入字典请求,没什么问题,也就没有在意,但是当自己用string转NSURL去请求HTML页面的时候,怎么也加载不出来,带汉字的URL直接copy到浏览器也可以打开,一时懵逼,思来想去,Charles中抓到的接口里显示的不是汉字,时带有%的编码,只有这个地方可能出问题了,于是又get一点经验值,自己请求URL的时候有汉字要转码,代码如下
NSString *host = @"http://api.url?";
if (!week) {
week = @"week=1周";
}
NSString *urlStr = [host stringByAppendingString:week];
NSString *encodeUrlStr = [urlStr stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];
[self.webView loadRequest:[NSURLRequest requestWithURL:[NSURL URLWithString:encodeUrlStr]]];
如果直接使用带有汉字的urlStr去请求的话是不会有任何结果的,当转码后才会成功。