如果我编码这样的字符串:
var escapedString = originalString.stringByAddingPercentEscapesUsingEncoding(NSUTF8StringEncoding)
Run Code Online (Sandbox Code Playgroud)
它不会逃避斜线/.
我搜索并找到了这个Objective C代码:
NSString *encodedString = (NSString *)CFURLCreateStringByAddingPercentEscapes(
NULL,
(CFStringRef)unencodedString,
NULL,
(CFStringRef)@"!*'();:@&=+$,/?%#[]",
kCFStringEncodingUTF8 );
Run Code Online (Sandbox Code Playgroud)
是否有更简单的方法来编码URL,如果没有,我如何在Swift中编写它?
在iOS8和之前我可以使用:
NSString *str = ...; // some URL
NSString *result = [str stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];
Run Code Online (Sandbox Code Playgroud)
在iOS9中stringByAddingPercentEscapesUsingEncoding已被替换为stringByAddingPercentEncodingWithAllowedCharacters:
NSString *str = ...; // some URL
NSCharacterSet *set = ???; // where to find set for NSUTF8StringEncoding?
NSString *result = [str stringByAddingPercentEncodingWithAllowedCharacters:set];
Run Code Online (Sandbox Code Playgroud)
我的问题是:在哪里找到所需的NSCharacterSet(NSUTF8StringEncoding)以便正确更换stringByAddingPercentEscapesUsingEncoding?
我正在编写一个Web应用程序并学习如何urlencode html链接...
这里的所有urlencode问题(见下面的标签)都是"如何...?" 的问题.
我的问题不是"如何?" 但为什么?".
甚至维基百科文章也只讨论它的机制:
http://en.wikipedia.org/wiki/Urlencode,
但不是为什么我应该在我的应用程序中使用urlencode.
什么是安全使用(或者更确切地说,不使用)进行urlencode的含义是什么?
如何使用进行urlencode失败被利用?
使用未编码的网址会出现什么样的错误或失败?
我问,因为即使没有urlencode,我的应用程序开发网站的链接,如下所示按预期工作:
http://myapp/my%20test/ée/ràé
我为什么要使用urlencode?
或另一种说法:
我什么时候应该使用urlencode?在什么样的情况下?