encodeURIComponent方法在灵药
问题描述:
寻找长生不老药的方式来编码URI组件即 javascript encodeURI("&") "&" encodeURIComponent("&") "%26"
Elixir URI.encode("&") "&" pry(11)> URI.encode_query(%{k: " & "})
基本上我想encode_query但没有做键值地图,也编码空间为%20,而不是+encodeURIComponent方法在灵药
"+k=%26+"
答
找到解决方案, 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
接受第二个可选参数 - 一个函数来确定是否跳过编码字符。因此,我们可以使用返回false(不跳过)的任何字符的函数:
URI.encode("&", fn(_) -> false end)
"%26"