ファイルを選択
  1. base64hub
  2. その他の基数
  3. uuencode

uuencode・uudecode オンライン変換ツール

テキストを入力すると、begin と end の行が付いた古典的な uuencode 出力が得られます。方向を切り替えれば uudecode です。メッセージ全体を貼り付けると、デコーダーが begin 行を見つけてブロックをデコードし、元のファイル名でファイルを保存できます。

無料 登録不要・制限なし ローカル アップロードなし ファイル名 begin 行から読み取り 更新日 2026/10/27
入力 0バイト 0 B出力 0

ブラウザ内で処理されます。このページがデータをどこかに送信することはできません – その根拠

uuencode と uudecode の使い方

エンコードするには:

  1. 入力 · テキスト にテキストを入力するか貼り付けます。uuencode されたブロックが 出力 · uuencode に表示されます。
  2. 出力の下の ファイル名 を設定します。これが begin 行に入ります。デフォルトは data.bin です。
  3. ほかの形式に埋め込む場合など、エンコードされた行だけが必要なら begin/end 行 のチェックを外します。

デコードするには:

  1. 方向の切り替えで uuencode → テキスト をクリックします。
  2. uuencode されたデータを貼り付けます。周りのメールやニュースのテキストを含んでいてもかまいません。begin 行より前はすべて読み飛ばされます。
  3. 出力欄のテキストを読むか、バイトを保存 をクリックして、begin 行のファイル名でデコードしたファイルをダウンロードします。バイナリの内容なら、先に 変換先 を Hex(16進数) にして中身を確認してください。

uuencode ファイルの構造

テキスト Cat をファイル名 hello.txt でエンコードすると、次のようになります。

begin 644 hello.txt
#0V%T
`
end
  • begin 644 hello.txt は Unix のパーミッションとファイル名を表します。
  • 各データ行は長さを表す文字で始まります。その行のバイト数に 32 を足した値です。# は 35 なので、この行には 3 バイトが入っています。満杯の行は 45 バイトを持ち、M で始まって 60 文字が続きます。
  • データの文字の仕組みは基本的に Base64 と同じです。3 バイトごとに 6 ビットの値 4 つになり、各値 v はコード v + 32 の文字で書かれます。値 0 はスペースではなくバッククォートで書かれます。
  • バッククォート 1 つだけの行は長さ 0 の空行で、end がブロックを閉じます。

もっと長い入力では、満杯の行の構造がわかります。

begin 644 fox.txt
M5&AE('%U:6-K(&)R;W=N(&9O>"!J=6UP<R!O=F5R('1H92!L87IY(&1O9RX@
*,#$R,S0U-C<X.0``
`
end

これは The quick brown fox jumps over the lazy dog. 0123456789 で、M の行に 45 バイト、* の行に 10 バイト(42 − 32 = 10)が入っています。各行がそれぞれの長さと改行を持つので、uuencode されたデータは入力より約 38% 大きくなり、Base64 より少し大きめです。

uuencode が今も見られる場所

uuencode は Unix-to-Unix Copy(UUCP)に由来し、MIME 以前はメールや Usenet でバイナリファイルを送る標準的な方法でした。現在では、古いメールのアーカイブ、Usenet の投稿、一部の組み込み機器やメインフレームのファイル転送、ファイルを mail にパイプするスクリプトなどで見かけます。

バッククォートの慣習はその時代に生まれました。行末のスペースを削るゲートウェイがあり、ゼロをスペースで表したデータは壊れてしまいましたが、バッククォートなら残ります。このエンコーダーはバッククォートで書き、デコーダーはどちらも受け付けます。

コマンドラインと Python での uuencode

GNU sharutils がインストールされていれば、次のように使えます。

uuencode hello.txt hello.txt > hello.uu
uudecode hello.uu

最初の引数は入力ファイル、2 番目は begin 行に書き込む名前です。uudecode はカレントディレクトリにその名前でファイルを作成します。Base64 で出力したい場合は uuencode に -m を付けます。

Python では、binascii が最大 45 バイトの 1 行ずつエンコードします。

import binascii

binascii.b2a_uu(b"Cat", backtick=True)   # b'#0V%T\n'
binascii.a2b_uu(b"#0V%T")                # b'Cat'

begin 644 name の行、最後のバッククォートの行、end は自分で付け加えてください。ほかのエンコードの例は Python のページ にあります。

よくある問題

  • 位置 1 でエラーになる。 begin 行がなく、テキストが uuencode された行だけでもありません。ブロック全体をコピーしたか確認してください。
  • begin-base64 ブロックから意味のない出力が出る。 そのブロックは uuencode -m で書かれた Base64 です。begin-base64 と ==== の間の行を Base64 デコーダー にコピーしてください。
  • ファイルが途中で切れる、または行末付近のバイトがおかしい。 メールクライアントが行を折り返し直したか、行末のスペースを削りました。データ行はすべて完全である必要があります。元の添付ファイルかメッセージのソースを入手してください。
  • 複数パートの投稿が一部しかデコードされない。 大きなファイルは複数のメッセージに分割されることがよくありました。デコードの前に、begin と end を 1 つずつ残して、パートを順番どおりにつなげてください。

よくある質問

uuencode: command not found を直すには?

ほとんどの Linux システムでは、このコマンドはデフォルトでインストールされていません。Debian や Ubuntu では sudo apt install sharutils で uuencode と uudecode が入ります。Fedora にも sharutils パッケージがあります。

begin 644 はどういう意味ですか?

644 はデコードしたファイルに付ける Unix のファイルモード(所有者は読み書き、それ以外は読み取りのみ)で、その後の単語がファイル名です。uudecode はそのファイルを作成します。このページでは、その名前を バイトを保存 に使います。

uuencode は Base64 と同じですか?

どちらも 3 バイトを 4 文字にしますが、uuencode はスペースからアンダースコアまでの ASCII の範囲を使い、各行に長さを表す文字を付けます。Base64 はアルファベットが異なり、MIME メールで使われているのはこちらです。uuencode -m は begin-base64 ブロックの中に Base64 を書き出します。

Python で今も uuencode されたファイルをデコードできますか?

はい。binascii.a2b_uu で 1 行ずつデコードできます。上位の uu モジュールは Python 3.11 で非推奨になり、3.13 で削除されました。