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】 (フィールドエンコード : フィールドを指定した場合)
フィールドを指定した場合は、指定されたフィールドのみをエンコードします。フィールド指定にはNF
やNF-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
このモードでは出力の末尾に改行文字はありません。