如果我编码这样的字符串:
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中编写它?
我正在使用GET方法,我必须在URL中传递电子邮件地址.API期望它被编码.我试过编码选项,但'+'字符无法编码.
我尝试使用以下代码
let encodedEmail = emailAddressTxt.text!.addingPercentEncoding(withAllowedCharacters:.urlHostAllowed)
let urlString = "http://www.example.com/User/GetUserDetailsByEmailAddress?EmailAddress=\(encodedEmail!)"
print(escapedString)
Run Code Online (Sandbox Code Playgroud)
它打印http://www.example.com/User/GetUserDetailsByEmailAddress?EmailAddress=mano+1%40gmail.com
其中'@'字符仅被编码而'+'未被编码.