let email = "[email protected]"
let output = CFURLCreateStringByAddingPercentEscapes(nil, email as NSString, nil, ":/[email protected]!$&'()*+,;=" as NSString, CFStringConvertNSStringEncodingToEncoding(NSUTF8StringEncoding))
// output = "me%2Bblah%40domain.net"
CFURLCreateStringByAddingPercentEscapes
不逃避默認+
或@
,但您可以指定它(像我一樣與其他字符一起,在":/[email protected]!$&'()*+,;="
字符串)。
編輯:如果你想output
成爲斯威夫特字符串:
let output = (CFURLCreateStringByAddingPercentEscapes(nil, email as NSString, nil, ":/[email protected]!$&'()*+,;=" as NSString, CFStringConvertNSStringEncodingToEncoding(NSUTF8StringEncoding)) as NSString) as String
指定如何編碼當前*的字符串/ URL(包括應用的步驟),因爲上下文對於「+」應該,不應該,還是可能百分比編碼非常重要。 「適當的編碼」由這些規則定義,在iOS之外(以及很久之前)。 – user2864740 2014-10-01 19:59:40
@ user2864740我不確定我是否理解,我給出了一個輸入示例和所需的輸出。目前,「+」字符不能與其他stackoverflow問題上提供的任何解決方案進行編碼。 – thatidiotguy 2014-10-01 20:07:11