亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

快速編碼URL

快速編碼URL

繁花如伊 2019-06-18 15:06:46
快速編碼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

在SWIFT 3中addingPercentEncoding

let originalString = "test/test"let escapedString = originalString.addingPercentEncoding(withAllowedCharacters:
 .urlHostAllowed)print(escapedString!)

產出:

測試%2 Ftest

SWIFT 1

在IOS 7及以上版本中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

示例以驗證非集合中的ascii字符:

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)\'")}


查看完整回答
反對 回復 2019-06-18
  • 3 回答
  • 0 關注
  • 769 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號