Base 64コードは、電子メールにおいて8ビットバイトのシーケンスを、より長いASCIIグラフィック文字のシーケンスとしてエンコードするために使用されます。このコードは、Internet RFC272045およびRFC 4648で定義されています。本節では、このコードへの変換およびコードからの変換を行う関数について説明します。
この関数は、begからendまでの領域をBase64コードに変換します。また、エンコードされたテキストの長さを返します。領域内の文字がマルチバイトである場合はエラーが通知されます。つまり、マルチバイトバッファの場合、領域にはASCII文字または生バイトのみが含まれている必要があります。
通常、この関数は行が長くなりすぎるのを防ぐため、エンコード済みテキストに改行文字を挿入します。ただし、オプション引数 no-line-break が nil
以外の場合、これらの改行は追加されないため、出力は1つの長い行になります。
この関数はbase64-encode-regionに似ていますが、RFC
4648に準拠したBase64エンコーディングのURLバリアントを実装しており、エンコード後のテキストに改行文字を挿入しないため、出力は1つの長い行になります。
オプション引数 no-pad が nil
以外の場合、この関数はパディング (=) を生成しません。
この関数は、文字列 string を Base64
コードに変換します。エンコードされたテキストを含む文字列を返します。base64-encode-region
については、文字列内の文字がマルチバイトである場合にエラーが通知されます。
通常、この関数は行が長くなりすぎるのを防ぐため、エンコード済みテキストに改行文字を挿入します。ただし、オプション引数 no-line-break が nil
以外の場合、これらの改行は追加されないため、結果の文字列は1つの長い行になります。
base64-encode-stringと同様ですが、base
64のURLバリアントを生成し、エンコード済みテキストに改行文字を挿入しないため、結果は1つの長い行になります。
オプション引数 no-pad が nil
以外の場合、この関数はパディングを生成しません。
この関数は、base 64 コードで表された領域を beg から end に変換し、対応するデコード済みテキストを返します。また、デコード済みテキストの長さを返します。
デコード関数は、エンコード済みテキスト内の改行文字を無視します。
オプション引数 base64url が nil
以外の場合、パディングは任意となり、base 64 エンコーディングの URL 形式が使用されます。オプション引数 ignore-invalid が nil
以外の場合、認識されない文字はすべて無視されます。
この関数は、base 64 コードの文字列 string を対応するデコード済みテキストに変換します。デコード済みテキストを含むユニバイト文字列を返します。
デコード関数は、エンコード済みテキスト内の改行文字を無視します。
オプション引数 base64url が nil
以外の場合、パディングは任意となり、base 64 エンコーディングの URL 形式が使用されます。オプション引数 ignore-invalid が nil
以外の場合、認識されない文字はすべて無視されます。
RFC(Request for Commentsの略称)は、標準規格を記述した番号付きのインターネット情報文書である。RFCは通常、技術専門家が自主的に執筆しており、伝統的に実用的かつ経験に基づいた手法で記述されている。