elixir 中的 encodeURIComponent
encodeURIComponent in elixir
寻找 elixir 方法来编码 uri 组件,即
javascript
encodeURI("&")
"&"
encodeURIComponent("&")
"%26"
长生不老药
URI.encode("&")
“&”
pry(11)> URI.encode_query(%{k: " & "})<br>
“+k=%26+”
基本上我想要 encode_query 但不必做键值映射并将空格编码为 %20,而不是 +
已找到解决方案,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"
URI.encode/2
接受第二个可选参数 - 一个确定是否跳过对字符进行编码的函数。所以我们可以使用函数 returns false (not skip) for any char:
URI.encode("&", fn(_) -> false end)
"%26"
寻找 elixir 方法来编码 uri 组件,即
javascript
encodeURI("&")
"&"
encodeURIComponent("&")
"%26"
长生不老药
URI.encode("&")
“&”
pry(11)> URI.encode_query(%{k: " & "})<br>
“+k=%26+”
基本上我想要 encode_query 但不必做键值映射并将空格编码为 %20,而不是 +
已找到解决方案,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"
URI.encode/2
接受第二个可选参数 - 一个确定是否跳过对字符进行编码的函数。所以我们可以使用函数 returns false (not skip) for any char:
URI.encode("&", fn(_) -> false end)
"%26"