[英]UTF8 Encoding in iOS / swift for email containing +
如何在查询字符串格式 URL/param1/param2/param3 中使用 UTF8 编码对 URL 参数进行编码
我什至尝试过 URLHostAllowedCharacterSet,它编码特殊字符而不是“+”字符。
如何使用 almofire 请求对包含 + 字符的 email 进行编码?
尝试添加扩展名以处理编码,然后在要编码时调用扩展名。
extension String {
func stringByAddingPercentEncodingForRFC3986() -> String? {
let unreserved = "-._~/?:"
let allowed = NSMutableCharacterSet.alphanumericCharacterSet()
allowed.addCharactersInString(unreserved)
return stringByAddingPercentEncodingWithAllowedCharacters(allowed)
}
}
然后使用它:
let query = "http://test.com/param1& param2+ param3"
let encoded = query.stringByAddingPercentEncodingForRFC3986()!
extension String {
func stringByAddingPercentEncodingForRFC3986() -> String? {
let unreserved = "-._~/?:"
let allowedCharacterSet = NSMutableCharacterSet.alphanumeric()
allowedCharacterSet.addCharacters(in: unreserved)
return self.addingPercentEncoding(withAllowedCharacters: allowedCharacterSet as CharacterSet)
}
}
let encodedVal = usernameTextField.text.stringByAddingPercentEncodingForRFC3986()
- - - - - 或者 - - - - -
extension String {
var urlEncoded: String? {
let allowedCharacterSet = CharacterSet.alphanumerics.union(CharacterSet(charactersIn: "-._~/?:"))
return self.addingPercentEncoding(withAllowedCharacters: allowedCharacterSet)
}
}
let encodedVal = usernameTextField.text.urlEncoded
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.