Tukubaiオンラインコマンドマニュアル - uriencode(1)

uriencode(1)

【名前】

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

$ 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

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

Last modified: 2023-03-21 10:36:01