elixir中的encodeURIComponent

时间:2016-09-28 20:43:32

标签: uri elixir encodeuricomponent

寻找elixir编码uri组件的方法,即 javascript encodeURI("&") "&" encodeURIComponent("&") "%26" Elixir URI.encode("&") "&" pry(11)> URI.encode_query(%{k: " & "})
"+k=%26+"
基本上我想要encode_query,但不必进行键值映射,也可以将空格编码为%20,而不是+

2 个答案:

答案 0 :(得分:3)

找到解决方案,uri.encode的默认参数为 def char_unescaped?(char) when char in 0..0x10FFFF do char_reserved?(char) or char_unreserved?(char) end 对于第二个参数,通过传递char_unreserved,该函数现在将编码保留字符

URI.encode(" & ", &URI.char_unreserved?(&1)) "%20%26%20"

答案 1 :(得分:0)

URI.encode/2接受第二个可选参数 - 一个确定是否跳过编码char的函数。所以我们可以使用为任何char返回false(不跳过)的函数:

URI.encode("&", fn(_) -> false end)
"%26"