Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/url/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 为什么要使用StringByAddingPercentescapesusingEncode?_Ios_Url_Nsstring - Fatal编程技术网

Ios 为什么要使用StringByAddingPercentescapesusingEncode?

Ios 为什么要使用StringByAddingPercentescapesusingEncode?,ios,url,nsstring,Ios,Url,Nsstring,我不熟悉iOS编程。我只想知道一个实际的例子 stringByAddingPercentEscapesUsingEncoding i、 e使用原因和时间?stringByAddingPercentEscapesUsingEncoding将Unicode*字符转换为百分比转义格式 stringbyreplacingpercentescapesusingencode将执行相反的操作,将百分比转义转换为Unicode* *实际上不是Unicode,而是您选择的编码 在使用URL时非常有用。它返回一个

我不熟悉iOS编程。我只想知道一个实际的例子

stringByAddingPercentEscapesUsingEncoding

i、 e使用原因和时间?

stringByAddingPercentEscapesUsingEncoding
将Unicode*字符转换为百分比转义格式

stringbyreplacingpercentescapesusingencode
将执行相反的操作,将百分比转义转换为Unicode*

*实际上不是Unicode,而是您选择的编码

在使用URL时非常有用。它返回一个百分比转义字符串,该字符串是合法的URL字符串

它将“世界”转换为“”

下面是关于URL的更多详细信息

注意:iOS 9中不推荐使用此方法。如果您想使用UTF-8编码,您可能还需要考虑使用此方法

我添加了代码以显示在不编码的情况下将url发送到服务器时的错误

NSString *urlString = @"http://localhost/test/test.php?name=hello world";

NSURLSession *session = [NSURLSession sharedSession];
[[session dataTaskWithURL:[NSURL URLWithString:urlString]
        completionHandler:^(NSData *data,
                NSURLResponse *response,
                NSError *error) {
            if (error) {
                NSLog(@"%@", error);
            } else {
                NSString* newStr = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding];
                NSLog(@"%@",newStr);
            }
        }] resume];
此代码返回

Error Domain=NSURLErrorDomain code=-1002“不支持的URL”UserInfo=0x7f92f17989d0{NSLocalizedDescription=不支持的URL,NSUnderlyingError=0x7f92f141b1f0“操作无法完成。(KCFerrordomaincfn网络错误-1002)。”

因此,要修复错误。我们只需要像这样对URL字符串进行编码


[NSURL URLWithString:[urlString stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding]

因为使用空格调用服务时,ios中出现错误。但使用上述方法将空间转换为URL中的%20。所以你可以得到回应。否则会出现错误。@Kirti是否像接收者期望的那样,它应该是这样的格式?&如果是的话,那么如果我手动添加其他东西,比如##,它会工作吗?这并不能回答为什么。你应该在你的答案中包含这一点,而不是一个链接,这就是它的作用。但我想知道为什么有必要?谢谢你@thanyaj。我得到了一点信息,但仍然不清楚我为什么需要这样做?如果你不使用它,它会返回如下错误
error Domain=NSURLErrorDomain code=-1002“unsupported URL”UserInfo=0x7fa1c99924a0{nslocalizeddedescription=unsupported URL,NSUnderlyingError=0x7fa1c992c940“操作无法完成。(KCFerrorDomainCFN网络错误-1002。)“}