如何使用特殊字符制作NSURL

时间:2016-07-04 14:26:44

标签: ios objective-c nsurl

我的申请表格是葡萄牙语 - 巴西。我们在“Açaí”这样的词中使用了一些特殊字符。

我有一个搜索方法,可以向这样的URL发送请求:

SELECT CASE 
        WHEN  (SELECT COUNT (*) FROM TABLE_ERR) > 0 AND (SELECT COUNT (*) FROM TABLE_PR) > 0 THEN 'OUTPUT 1'
        WHEN  (SELECT COUNT (*) FROM TABLE_ERR) > 0 AND (SELECT COUNT (*) FROM TABLE_PR) = 0 THEN 'OUTPUT 2'
        ELSE ''
        END

现在,如果_query设置为“Açaí”(其中有ç和í作为特殊字符),当我尝试 NSURLSession *session = [NSURLSession sharedSession]; NSString *urlString = [NSString stringWithFormat:@"http://www.mydomain.com.br/webservice/search/%@",_query]; NSURL *URL = [NSURL URLWithString:urlString]; [[session dataTaskWithURL:URL completionHandler:^(NSData *data, NSURLResponse *response, NSError *error) { //ALL THE LOGIC HERE }); }] resume]; 时,URL变量未初始化并打破其余所有内容。

如何使用特殊字符向我的网络服务发送请求?

1 个答案:

答案 0 :(得分:0)

我认为您需要在创建NSURL之前转义url字符串。

NSString *urlString = [NSString stringWithFormat:@"http://www.mydomain.com.br/webservice/search/%@",_query];
NSURL *URL = [NSURL URLWithString:[urlString stringByAddingPercentEscapesUsingEncoding: NSUTF8StringEncoding]];