Ruby 2.2.0 リファレンスマニュアル > ライブラリ一覧 > uriライブラリ > URIモジュール > encode_www_form

singleton method URI.encode_www_form

encode_www_form(enum) -> String[permalink][rdoc]

enum から URL-encoded form data を生成します。

HTML5 で定義されている application/x-www-form-urlencoded 形式の 文字列を生成します。

enum には通常 [key, value] という形の配列の配列を渡します。 以下の例を見てください。

URI.encode_www_form([["a", "1"], ["b", "2"], ["c", "x yz"]])
# => "a=1&b=2&c=x+yz"

実際には、each のブロック呼び出しで [key, value] の形のデータを渡すものであれば 何でも渡すことができます(例えば Hash など)。

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 を使っています。

このメソッドは http://www.w3.org/TR/html5/forms.html#url-encoded-form-data にもとづいて実装されています。

[PARAM] enum:
エンコードするデータ列([key, value] という形のデータの列)

[SEE_ALSO] URI.encode_www_form_component, URI.decode_www_form