2016-08-23 200 views
-1

如何编码URL参数在查询字符串格式的URL UTF8编码的电子邮件/参数1 /参数2 /参数3UTF8编码含+

我甚至试过URLHostAllowedCharacterSet,编码特殊字符,但不是“+ '字符。

如何使用almofire请求对包含+字符的电子邮件进行编码?

+0

你尝试过它,有自己的尝试?你的代码将清除这个问题。 – pedrouan

+0

是的,我试图通过电子邮件,即a + [email protected]作为param1,但服务器采取+作为一个白色空间。我想用编码发送这封电子邮件,以便服务器可以接受+字符。 –

+0

你试过在'+'之前用'\'来逃避角色吗? – pedrouan

回答

3

尝试添加一个扩展来处理编码,然后在您想要编码时调用扩展。

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()! 
+1

它为我工作! :) 谢谢。 –