快速編碼URL如果我像這樣編碼一個字符串:var escapedString = originalString.stringByAddingPercentEscapesUsingEncoding(NSUTF8StringEncoding)它逃不出斜杠/.我搜索并找到了這個目標C代碼:NSString *encodedString = (NSString *)CFURLCreateStringByAddingPercentEscapes(
NULL,
(CFStringRef)unencodedString,
NULL,
(CFStringRef)@"!*'();:@&=+$,/?%#[]",
kCFStringEncodingUTF8 );是否有一種更簡單的方式來編碼一個URL,如果不是,我如何用SWIFT寫這個呢?
3 回答
皈依舞
TA貢獻1851條經驗 獲得超3個贊
SWIFT 3
addingPercentEncoding
let originalString = "test/test"let escapedString = originalString.addingPercentEncoding(withAllowedCharacters: .urlHostAllowed)print(escapedString!)
測試%2 Ftest
SWIFT 1
stringByAddingPercentEncodingWithAllowedCharacters
var originalString = "test/test"var escapedString = originalString.stringByAddingPercentEncodingWithAllowedCharacters
(.URLHostAllowedCharacterSet())println("escapedString: \(escapedString)")
測試%2 Ftest
URLFragmentAllowedCharacterSet "#%<>[\]^`{|}
URLHostAllowedCharacterSet "#%/<>?@\^`{|}URLPasswordAllowedCharacterSet "#%/:<>?@[\]^`{|}
URLPathAllowedCharacterSet "#%;<>?[\]^`{|}URLQueryAllowedCharacterSet "#%<>[\]^`{|}
URLUserAllowedCharacterSet "#%/:<>?@[\]^`var originalString = "test/test=42"var customAllowedSet = NSCharacterSet(charactersInString:"=\"#%/<>?@\\^`{|}").
invertedSetvar escapedString = originalString.stringByAddingPercentEncodingWithAllowedCharacters(customAllowedSet)println
("escapedString: \(escapedString)")
測試%2 Ftest%3D42
func printCharactersInSet(set: NSCharacterSet) {
var characters = ""
let iSet = set.invertedSet for i: UInt32 in 32..<127 {
let c = Character(UnicodeScalar(i))
if iSet.longCharacterIsMember(i) {
characters = characters + String(c)
}
}
print("characters not in set: \'\(characters)\'")}- 3 回答
- 0 關注
- 773 瀏覽
添加回答
舉報
0/150
提交
取消
