Tukubaiオンラインコマンドマニュアル

uriencode

【名前】

uriencode : URI エンコードを行なう

【書式】

Usage   : uriencode [<file>]
          uriencode <field> ... [<file>]
          uriencode num=<n> [<file>]
          uriencode -a [<file>]
Version : Tue Mar 21 09:07:51 JST 2023

【説明】

標準入力を読み込み、引数で指定されたポリシーにしたがって、入力データを RFC 3986 で定義された URI エンコードを行います。エンコード方式はパーセントエンコードです。エンコード対象の文字は非予約文字以外です。RFC 3986 では、ASCIIのコード範囲内の英字(大文字・小文字)、数字、ハイフン'-'、ピリオド'.'、アンダースコア'_'、チルダ'~' を非予約文字としています。

後述する全体エンコードモード以外の動作モードでは、'\' をエスケープ文字と解釈します。'\\''\''\n' は改行文字と解釈されます。他の文字が続く'\' は無視されます。

<file> を指定しないか"-" を指定した場合は標準入力を読み込みます。

【例1】 (行単位エンコード : <file> のみを指定した場合)

<file> のみを指定した場合は、一行毎にエンコードします。改行文字はエンコードされず、そのまま出力されます。'\' はエスケープ文字と解釈されます。

$ cat data
a b c d e
あ い\\ う\n え お
か き く け こ
$ uriencode data
a%20b%20c%20d%20e
%E3%81%82%20%E3%81%84%5C%20%E3%81%86%0A%20%E3%81%88%20%E3%81%8A
%E3%81%8B%20%E3%81%8D%20%E3%81%8F%20%E3%81%91%20%E3%81%93

【例2】 (フィールドエンコード : フィールドを指定した場合)

フィールドを指定した場合は、指定されたフィールドのみをエンコードします。フィールド指定にはNFNF-1 なども使えます。連続したフィールドを指定する場合は3/5 のように指定することができます。フィールドは昇順に指定します。空白と改行文字はエンコードされず、そのまま出力されます。'\' はエスケープ文字と解釈されます。

$ uriencode 1 3 5 data
a b c d e
%E3%81%82 い\\ %E3%81%86%0A え %E3%81%8A
%E3%81%8B き %E3%81%8F け %E3%81%93

【例3】 (先頭スキップエンコード : num オプションを指定した場合)

num オプションを指定した場合は、行頭の<n> フィールドをそのまま出力し、それ以降から行末までをエンコードします。エンコード対象部分の

白は連続していてもそのままエンコードされます。改行文字はエンコードされず、そのまま出力されます。'\' はエスケープ文字と解釈されます。

$ uriencode num=2 data
a b c%20d%20e
あ い\\ %E3%81%86%0A%20%E3%81%88%20%E3%81%8A
か き %E3%81%8F%20%E3%81%91%20%E3%81%93

【例4】 (全体エンコード : -a オプションを指定した場合)

-a オプションを指定した場合は、ファイル全体をエンコードします。空白や改行文字もエンコードされます。'\' はエスケープ文字と解釈されず、そのままエンコードされて出力されます。

$ uriencode -a < data
a%20b%20c%20d%20e%0A%E3%81%82%20%E3%81%84%5C%5C%20%E3%81%86%5Cn%20
%E3%81%88%20%E3%81%8A%0A%E3%81%8B%20%E3%81%8D%20%E3%81%8F%20%E3%81
%91%20%E3%81%93%0A

このモードでは出力の末尾に改行文字はありません。

Last modified: Tue Mar 21 09:15:00 JST 2023