encode_www_form(enum, enc=nil) -> String
[permalink][rdoc][edit]-
enum から URL-encoded form data を生成します。
HTML5 で定義されている application/x-www-form-urlencoded 形式の文字列を生成します。
enum には通常 [key, value] という形の配列の配列を渡します。以下の例を見てください。
require 'uri' URI.encode_www_form([["a", "1"], ["b", "2"], ["c", "x yz"]]) # => "a=1&b=2&c=x+yz"
実際には、each のブロック呼び出しで [key, value] の形のデータを渡すものであれば何でも渡すことができます(例えば Hash など)。
require 'uri' URI.encode_www_form({"a"=>"1", "b"=>"2", "c"=>"x yz"}) # => "a=1&b=2&c=x+yz"
このメソッドは引数のエンコーディングを変換しません。そのため送るデータのエンコーディングを変換したい場合はあらかじめ変換しておいてください(例えば ASCII incompatible なものを UTF-8 に変換する場合など)。各要素のエンコーディングがばらばらの場合もあらかじめエンコーディングを揃えてからこのメソッドを使うべきです。
このメソッドはファイルを入力にすることはできません。ファイルを送りたい場合は multipart/form-data をつかうべきでこのメソッドを使うべきではありません。
このメソッドは内部的に URI.encode_www_form_component を使っています。
このメソッドは https://url.spec.whatwg.org/#concept-urlencoded-serializer にもとづいて実装されています。
- [PARAM] enum:
- エンコードするデータ列([key, value] という形のデータの列)
- [PARAM] enc:
- 指定された場合、パーセントエンコーディングする前に、このエンコーディングに変換
[SEE_ALSO] URI.encode_www_form_component, URI.decode_www_form