uuencode / xxencode エンコーダ・デコーダ
Web処理はすべてブラウザ内で完結します。データは送信されません
uuencode はメールや Usenet の時代に、バイナリをプレーンテキストに載せるために使われた符号化です。3 バイトを 4 文字で表し、各行の先頭 1 文字がその行のバイト数を示します。本ツールは uuencode・xxencode・base64 変種に対応します。エンコードでは `begin` / `end` を含む完全なテキストを出力し、そのままメールに貼ったり `.uu` ファイルとして保存できます。デコードは厳密に検証し、行頭の長さと実際の文字数が合わない場合や、アルファベット外の文字があれば何行目かを示します。黙って切り詰めることはありません。非 ASCII は UTF-8 のバイト列として扱います。すべてブラウザ内で完結します。
機能
- 3 つの変種:uuencode・xxencode・base64 変種
- エンコードは begin / end を含む完全なテキストを出力し、そのまま保存可能
- デコードは厳密に検証し、問題のある行番号を示す
- 行頭の長さと実際の文字数が合わなければエラーにし、切り詰めない
- 0 バイトはバッククォートで表す(メールで消えない)。デコードでは空白もバッククォートも 0 として扱う
- 1 行あたりのバイト数を調整可能(30〜60)、ファイル名も指定可能
- デコード結果はファイル名・パーミッション・バイト数・データ行数を表示
使い方
- モードを選びます:エンコード / デコード
- 変種を選びます(uuencode / xxencode / base64)
- エンコードではテキストを、デコードでは uuencode の全文を貼り付けます
- 「コピー」で結果を取り出します
よくある質問
- uuencode の各行の先頭文字は何ですか?
- その行のバイト数 + 32 です。例えば `M` は 0x4D = 77 で、32 を引くと 45。この行は 45 バイトという意味です。バイト数が 0 のときはバッククォート `` ` ``(伝統的には空白の場合もあります)になり、データの終わりを示します。
- 0 を空白ではなくバッククォートで表すのはなぜですか?
- メールやフォーラムは行末の空白をしばしば削除しますが、バッククォートは残すからです。0 を空白にすると行末のゼロが黙って消え、デコードしたファイルが数バイト短くなります。転送に耐えるためにバッククォートが選ばれました。
- base64 変種は普通の Base64 と同じですか?
- アルファベットは同じですが、外側の包みが違います。base64 変種(`begin-base64 … ====`)は uuencode ファミリーの一員で、base64 データを同じ begin/end の枠に収めるため、行単位の規則に従います。裸の Base64 にはこのような先頭行・終端行はありません。
- 「N 行目の先頭文字は X バイトと示していますが、実際は Y です」とは?
- その行が変更されたということです。コピー時に文字が欠けたか、途中に改行が混入しています。uuencode の各行は自分の長さを宣言しているため、食い違った時点でその行全体が信用できません。短い方に合わせるような切り詰めはせず、明確にエラーにします。
関連ツール
Base32
エンコードテキストと Base32 を相互変換します。標準と base32hex の両方に対応し、日本語は UTF-8 バイトで処理します。
Base64 変換
エンコードテキストを Base64 に変換し、Base64 からテキストへ戻します。日本語や中国語、emoji も UTF-8 として正しく処理。すべてブラウザ内で完結し、内容は送信しません。
Hex 変換
エンコード16 進数とテキストを相互変換します。0x・\x・空白・コロンなどの表記に対応し、日本語は UTF-8 でバイト単位に正しく復元、バイト数も表示します。
URL 解析
WebURL を解析し、スキーム・ホスト・ポート・パス・クエリパラメータ・アンカーに分解します。パラメータは元の値とデコード値を並記。すべてブラウザ内で処理します。
UA 解析
WebUser-Agent を解析し、ブラウザ・バージョン・OS・デバイス種別・エンジンを判定します。判定はパターン照合による概算です。すべてブラウザ内で処理します。
HTTP ステータスコード
WebHTTP ステータスコードの検索。番号から意味を、キーワードから番号を引けます。1xx〜5xx の分類・利用場面・確認のポイント付き。すべてブラウザ内で処理します。