当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


Elixir URI.decode_query用法及代码示例


Elixir语言中 URI.decode_query 相关用法介绍如下。

用法:

decode_query(query, map \\ %{}, encoding \\ :www_form)
@spec decode_query(binary(), %{optional(binary()) => binary()}, :rfc3986 | :www_form) ::
  %{
    optional(binary()) => binary()
  }

query 解码为Map。

给定 key1=value1&key2=value2... 形式的查询字符串,此函数将查询字符串中的每个键值对作为给定 map 中的一个条目插入。结果映射中的键和值将是二进制文件。键和值将是percent-unescaped。

您可以指定以下 encoding 选项之一:

  • :www_form -(默认,自 v1.12.0 起)键和值按照 decode_www_form/1 进行解码。这是浏览器通常用于查询字符串和表单数据的格式。它将"+"解码为" "。

  • :rfc3986 -(自 v1.12.0 起)键和值按照 decode/1 进行解码。结果与 :www_form 相同,只是将 "+" 与 RFC 3986 保持一致。

为了向后兼容,编码默认为:www_form

如果要手动迭代每个值,请使用 query_decoder/1

例子

iex> URI.decode_query("foo=1&bar=2")
%{"bar" => "2", "foo" => "1"}

iex> URI.decode_query("percent=oh+yes%21", %{"starting" => "map"})
%{"percent" => "oh yes!", "starting" => "map"}

iex> URI.decode_query("percent=oh+yes%21", %{}, :rfc3986)
%{"percent" => "oh+yes!"}

相关用法


注:本文由纯净天空筛选整理自elixir-lang.org大神的英文原创作品 URI.decode_query(query, map \\ %{}, encoding \\ :www_form)。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。