繁体   English   中英

UTF8 编码在 iOS / swift 为 email 包含 +

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM