base64

このモジュールは Base64 エンコーダーとデコーダーの実装です。

この API は不安定です。

Base64 はバイナリデータから ASCII 文字列形式への変換に用いるエンコードとデコードの技術です。Base64 の各桁は必ず 6 bit データ表現になります。したがって、 3 桁の 8 bit バイト (つまり、合計 24 bit) は Base64 において 4 桁の 6 bit 表現になります。

基本の用法

データのエンコード

import base64
let encoded = encode("Hello World")
assert encoded == "SGVsbG8gV29ybGQ="

文字列以外にも整数、または文字から成るリストをエンコードできます。

import base64
let encodedInts = encode([1,2,3])
assert encodedInts == "AQID"
let encodedChars = encode(['h','e','y'])
assert encodedChars == "aGV5"

データのデコード

import base64
let decoded = decode("SGVsbG8gV29ybGQ=")
assert decoded == "Hello World"

関連

プロシージャ

proc encode[T: SomeInteger | char](s: openArray[T]; lineLen = 75; newLine = ""): string

Base64 形式で s をエンコードします。lineLen 文字の後に、 newline (改行文字) を追加します。

このプロシージャは整数、または文字から成る無蓋配列 (無蓋やシーケンス) をエンコードします。

関連:

用例:

assert encode(['n', 'i', 'm']) == "bmlt"
assert encode(@['n', 'i', 'm']) == "bmlt"
assert encode([1, 2, 3, 4, 5]) == "AQIDBAU="
  ソース 編集
proc encode(s: string; lineLen = 75; newLine = ""): string {...}{.raises: [], tags: [].}

Base64 形式で s をエンコードします。lineLen 文字の後に、 newline (改行文字) を追加します。

このプロシージャは文字列をエンコードします。

関連:

用例:

assert encode("Hello World") == "SGVsbG8gV29ybGQ="
assert encode("Hello World", 3, "\n") == "SGVs\nbG8g\nV29ybGQ="
  ソース 編集
proc decode(s: string): string {...}{.raises: [], tags: [].}

Base64 形式の文字列 s をデコードして元形式へ復元します。頭文字にあるホワイトスペースは無視します。

関連:

用例:

assert decode("SGVsbG8gV29ybGQ=") == "Hello World"
assert decode("  SGVsbG8gV29ybGQ=") == "Hello World"
  ソース 編集