Next: , Previous: , Up: テキスト   [Contents][Index]


33.25 Base 64エンコーディング

Base64コードは8ビットシーケンスをより長いASCIIグラフィック文字シーケンスにエンコードするためにemail内で使用されます。これはインターネットRFC2045およびRFC4648でも定義されます19。このセクションでは、このコードへの変換および逆変換を行う関数について説明します。

Command: base64-encode-region beg end &optional no-line-break

この関数はbegからendのリージョンをBase64コードに変換する。これはエンコードされたテキストの長さをリターンする。リージョン内の文字がマルチバイトならエラーをシグナルする(マルチバイトバッファーではリージョンにはasciieight-bit-controleight-bit-graphic以外の文字が含まれてはならない)。

この関数は通常は行が長くなりすぎるのを防ぐために、エンコードされたテキストに改行を挿入する。しかしオプション引数no-line-breakが非nilなら、これらの改行は追加されず出力は長い単一の行となる。

Command: base64url-encode-region beg end &optional no-pad

この関数はbase64-encode-regionと同様だがRFC4648にしたがいBase64エンコーディングのURLバリアントを実装する。エンコードされたテキストに改行を挿入しないので、出力は1行だけの長い行となる。

オプション引数no-padは非nilなら、この関数はパディング(=)を生成しない。

Function: base64-encode-string string &optional no-line-break

この関数は文字列stringをBase64コードに変換する。これはエンコードされたテキストを含む文字列をリターンする。base64-encode-regionと同じように文字列内の文字がマルチバイトならエラーをシグナルする。

この関数は通常は行が長くなりすぎるのを防ぐためにエンコードされたテキストに改行を挿入する。しかしオプション引数no-line-breakが非nilなら、これらの改行は追加されず結果となる文字列は長い単一の行となる。

Function: base64url-encode-string string &optional no-pad

base64-encode-stringと同様だがBase64のURLバリアントを生成する。エンコードされたテキストに改行を挿入しないので、結果は1行だけの長い行となる。

オプション引数no-padは非nilなら、この関数はパディングを生成しない。

Command: base64-decode-region beg end &optional base64url

この関数はbegからendのリージョンのBase64コードを対応するデコードされたテキストに変換する。これはデコードされたテキストの長さをリターンする。

デコード関数はエンコード済みテキスト内の改行文字を無視する。

オプション引数base64urlが非nilならパディングはオプションであり、Base64エンコーディングのURLバリアントが使用される。

Function: base64-decode-string string &optional base64url

この関数は文字列stringを、Base64コードから対応するデコード済みテキストに変換する。これはデコード済みテキストを含むユニバイトをリターンする。

デコード関数はエンコード済みテキスト内の改行文字を無視する。

オプション引数base64urlが非nilならパディングはオプションであり、Base64エンコーディングのURLバリアントが使用される。


Footnotes

(19)

RFC(Request for Commentsの略)とは標準を記述するナンバーが付与されたインターネット情報提供ドキュメントです。RFCは通常は自身が先駆的に活動する技術エキスパートによって記述され、伝統として現実的で経験主導で記述されます。