我需要发送法语字符串"Commentaire d'arret">到objective c
webservice
。 但是当我将此字符串作为参数发送到服务时,我的应用程序崩溃了。像"india">这样的普通字符串工作正常。
谁能帮我。
对 GET 请求的参数进行编码:
let param = "Commentaire d’arret"
let encodedParam = (param as NSString).addingPercentEncoding(withAllowedCharacters: .urlQueryAllowed)
结果在评论中%20d%E2%80%99arret。
如果要发送 POST 请求,请像这样准备您的帖子正文:
let postString = "param=consultés"
let postData = postString.data(using: .utf8)
目标-C
NSString *param = @"Commentaire d’arret";
NSString *encodedParam = [param stringByAddingPercentEncodingWithAllowedCharacters:[NSCharacterSet URLQueryAllowedCharacterSet]];
NSString *postString = @"param=consultés";
NSData *postData = [postString dataUsingEncoding:NSUTF8StringEncoding];
正如您所说,我已经检查了您的代码,您需要在转换为您的 URL 之前进行编码。 试试这个。
NSString *searchApi = [NSString stringWithFormat:@"xxx/xxx/index?
q=@consultés"];
searchApi = [searchApi stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];
NSURL *tempURL = [NSURL URLWithString:searchApi];
试试这个:
NSString *strParam = @"Commentaire d’arret";
NSString *encodedParam = [strParam stringByAddingPercentEncodingWithAllowedCharacters:[NSCharacterSet URLQueryAllowedCharacterSet]];