ツール説明

UUencode(Unix-to-Unix encoding)は、テキストベースの通信チャネル、特にMIMEが標準になる前のメールシステムを通じてバイナリファイルを送信するために広く使用されていたバイナリ・テキスト間のエンコーディング形式です。このツールを使用すると、テキストデータをuuencode形式にエンコードしたり、uuencodeされたデータを元のテキスト形式にデコードしたりできます。

機能

  • 双方向変換: テキストをuuencode形式にエンコードするか、uuencodeされたデータをテキストにデコードします
  • 標準形式: 「begin」および「end」マーカー付きの標準uuencode形式を使用します
  • パーミッションモード: デフォルトの644パーミッションモードでエンコードします
  • ファイル名サポート: エンコード出力にデフォルトファイル名「file.txt」を含めます
  • 自動検出: uuencodeヘッダーとフッターをインテリジェントに処理します

UUencodeとは?

UUencodeは1980年代に開発され、7ビットASCIIテキストのみをサポートするメールシステムを通じてバイナリファイルを送信できるようにしました。6ビットエンコーディングスキームを使用して、バイナリデータ(またはテキスト)を印字可能なASCII文字に変換します。3バイト(24ビット)のグループは、4つの印字可能文字(4 × 6 = 24ビット)に変換されます。

形式には以下が含まれます:

  • ヘッダー: begin [mode] [filename] - エンコードされたデータの開始を示します
  • エンコードされたデータ: 長さ文字で始まり、その後にエンコードされたコンテンツが続く行
  • フッター: end - エンコードされたデータの終了を示します

ユースケース

  • レガシーシステム互換性: uuencodeを使用する古いUnixシステムとメールアーカイブを操作します
  • メール添付ファイル: 古いメールメッセージからバイナリ添付ファイルをデコードします
  • データアーカイブ: 履歴uuencodeアーカイブからファイルを抽出します
  • プロトコル実装: uuencode/uudecode機能をテストまたは実装します
  • ファイル復旧: uuencodeされたテキストファイルからデータを復旧します
  • 教育目的: 履歴的なエンコーディング方法とバイナリ・テキスト間の変換について学習します

変換の詳細

エンコードプロセス:

  1. データは最大45バイトのチャンクで処理されます
  2. 各行は、エンコードされたバイト数を示す文字で始まります
  3. 3バイトごとに、24ビットを4つの6ビット値に分散させることで4文字に変換されます
  4. 各6ビット値は、32(スペース文字)を追加することで印字可能文字に変換されます
  5. 結果は「begin 644 filename」および「end」マーカーでラップされます

デコードプロセス:

  1. 「begin」マーカーを見つけてデコードを開始します
  2. 各行の開始時に長さ文字を読み取ります
  3. 4文字のグループを3バイトに変換します
  4. 「end」マーカーで停止します
  5. 元のテキストデータを返します