如何使用UTF8编码对URL参数进行编码: URL?email=test+@gmail.com到URL?email=test%2B@gmail.com
我尝试了'test+@gmail.com'.encode(“ UTF-8”)
CGI :: escape('test+@gmail.com')返回'test%2B%40gmail.com但我需要test%2B@gmail.com
email=test+@gmail.com应该编码为“ +”,只有其余部分保持不变 URL?email=test%2B@gmail.com
答案 0 :(得分:1)
uri
std-lib具有用于该URI::Escape#escape
的方法。 URI
扩展了URI::Escape
模块,这种方法也是如此。
URI.escape('test+@gmail.com', '+')
#=> "test%2B@gmail.com" ^ the characters to escape with URL encoding
但是像@spickermann says in the comments:
为什么要在URL中编码
+
而不是@
?@
也必须进行编码。