Xxencode と Xxdecode

テキスト、16進数のバイト列、ファイルを xxencode でエンコードし、xxencode されたブロックを元のデータにデコードします。アルファベットは英字、数字、プラス、マイナスだけです。

すべてブラウザ内で処理され、データはアップロードされません。

使い方

  1. xxencode 形式のブロックを作成するには「エンコード」を、ブロックをデータに戻すには「デコード」を選択します。
  2. 完全なブロックを作成するには、「begin / end 行」をオンのままにして「ファイル名」を設定します。データ行だけが必要な場合はオフにします。
  3. データを入力または貼り付けるか、ファイルを開きます。結果は入力に合わせてリアルタイムに更新されます。
  4. 結果をコピーまたはダウンロードします。デコード時にデータがテキストでない場合は、「出力形式」で「16進数」を選択するか、ファイルをダウンロードします。

xxencode とは

xxencode は uuencode の構造をそのまま受け継ぎ、使う文字だけを変えたものです。3 バイトごとに 6 ビットの値 4 つにする点、データ行が長さを示す文字の後に最大 45 バイト分を収める点、ブロックが begin 644 name 行と end 行の間に置かれる点は変わりません。

64 個の値は、+、-、数字 0-9、大文字 A-Z、小文字 a-z の順に対応付けられます。長さを示す文字にも同じ表を使うため、45 バイトの満杯の行は h で始まり、end の前の空行は + 1 文字になります。構成が同じなので、出力サイズも uuencode と同じで、長さを示す文字と改行を含めて入力より約 38% 大きくなります。

xxencode が作られた理由

uuencode の出力には、[、]、\、^、! などの記号が多く含まれます。IBM のメインフレームは ASCII ではなく EBCDIC を使っており、これらの文字は EBCDIC のコードページごとに異なる位置にあります。ASCII と EBCDIC のネットワーク間のゲートウェイをメールが通過すると、こうした文字が誤って変換され、ファイルが壊れることがありました。

英字、数字、プラス、マイナスはどの EBCDIC コードページでも同じなので、xxencode されたテキストはどちらの方向にも正しく変換されます。後に MIME も同じ目的を達成しました。Base64 も、英字、数字と、ASCII と EBCDIC で共通のいくつかの記号だけを使います。xxencode は uuencode ほど普及せず、最終的には Base64 が両方に取って代わりました。

uuencode と xxencode の比較

UuencodeXxencode
使用文字ASCII 32~95、0 はバッククォート+ - 0-9 A-Z a-z
45 バイトの満杯の行の先頭文字Mh
end の前の最後の行`+
EBCDIC のゲートウェイを通しても安全いいえはい

仕様

使用文字+ - 0-9 A-Z a-z
出力サイズ行頭の長さ文字を含めて約 137%
パディング1 行あたり最大 45 バイト
規格xxencode
大文字と小文字の区別あり

エンコード例

入力 (UTF-8)出力
Hello, World!begin 644 data.bin BG4JgP4wg63RjQalY6E++ + end
Base64.isbegin 644 data.bin 7Ea3nNHMo9aZn + end
你好begin 644 data.bin 4t9qUtOKx + end

よくある質問

uuencode と xxencode はどう見分けますか?
データ行を見てください。xxencode の行には英字、数字、プラス、マイナスしか含まれず、満杯の行は h で始まります。uuencode の行には記号が含まれ、満杯の行は M で始まります。ここでのデコードが無効な文字のエラーで失敗する場合は、uuencode のページを試してください。
このツールは begin 行と end 行を書き出しますか?
はい。デフォルトでは、入力したファイル名を付けた begin 644 行と、終わりの行を書き出します。エンコードされたデータ行だけが必要な場合は、このオプションをオフにしてください。
begin 行のないブロックをデコードできますか?

はい。begin 行がない場合は、空でないすべての行をデータとしてデコードします。begin 行がある場合は、その次の行からデコードを始めて end 行で終了するため、前後のテキストは無視されます。

xxencode は今でも使われていますか?
ほとんど使われていません。見かけるのは主に古いメールやニュースのアーカイブです。新しいデータには、ほぼどこでもサポートされ、テキストのみの通信経路でも同じく安全な Base64 を使ってください。