ファイルのエンコード

uuencodeとuudecode

uuencode(拡張子は.uuや.uue)とはUNIX UNIX encodeの略。バイナリファイルをテキストデータに変換(エンコード)もしくはそのデータをもとのバイナリデータに符号化(デコード)するもの。可逆。むちゃぶりですが文字列を覚えられたら、人間でもバイナリを喋れる。

CentOS(Linux)とuuencode

CentOSでは(標準で)uuencodeがないはず。必要であれば、それらを含むsharutilsパッケージをインストールすること。

uuencodeしてみる

# uuencode ./gazou.jpg WORDs > file.uu

ファイルサイズが1.5倍くらいになるけどたしかにmoreで見られる。正確なファイルサイズの増え方はマニュアルに書いていたと思う。ちなみに、uuencode -m するとbase64になる。WORDsにつけた名前が、uudecode後のファイル名となる。

サーバから配送するとき、圧縮(compress)して送るというのがまあベターな手順。(mailx で ~r してもいけるけど)

uudecodeしてみる

# uudecode ./file.uu

uuencode時に指定したWORDsのファイル名にデコードされる。

MIMEとは

MIMEとはMultipurpose Internet Mail Extensionsの略。uuencodeだと1つの(バイナリ)ファイルに説明をつけて送る、だったが本文とかも全部ひっくるめて送りたい場合に使われるようになった。

ものすごくさっくり書くと

MIMEバージョンMIMEバージョン名を書いておく
何のファイルかそのファイルがもともと何かを書く。text/htmlとかimage/jpegとか
符号化の方法charsetってやつ
内容のエンコードビット数content-transfer-encoding : 7bit とか

こういう情報をうめこむ。MewとかだとMIMEマルチパートの編集ができる。

で、MIME対応しているMUAとか(←まだ調べきってないよ%)であれば、何も考えずにエンコード・デコードできる。

たとえば、HTMLメールでこういうメールを送った場合、

サブジェクト:TEST DESU YO ※半角英数で書くことがポイント
本文:ほげほげ(改行)ほげほげ(赤)(改行)シグネチャ
※2行目はフォント色を赤に、シグネチャはイタリック(斜体)に

実際のメールの中身はこうなる(一部ヘッダ略)

Received:(経由サーバ)
Message-ID: メッセージID
From: メール差出人
To: =?iso-2022-jp?xxxx※宛先メールアドレスを漢字で登録していたため
Subject: TEST DESU YO ※半角英数のためそのまま表示していることに注目
Date: メール送信日付
MIME-Version: 1.0
Content-Type: multipart/alternative;
boundary="----=_NextPart_000_006B_01C9759C.xxxxx"
This is a multi-part message in MIME format.
------=_NextPart_000_006B_01C9759C.xxxxx
Content-Type: text/plain;
	charset="iso-2022-jp"
Content-Transfer-Encoding: 7bit

ほげほげ
ほげほげ(赤)

(しぐねちゃ)

------=_NextPart_000_006B_01C9759C.xxxxx
Content-Type: text/html;
	charset="iso-2022-jp"
Content-Transfer-Encoding: quoted-printable

※以下HTMLメールの中身(タグ付き)

------=_NextPart_000_006B_01C9759C.xxxxx--

NextPartの部分は同じ文字列ってことね


参考資料

  • インターネットメールの注意点(HATさん、個人ページのウェブアーカイブ版。情報が古いけど、役立つ。),

http://web.archive.org/web/20080107153216/http://www003.upp.so-net.ne.jp/hat/imail/cover.html #文字化けするときはエンコード設定でiso-2022-jpにする

  • メールにかけられた呪文「MIME~前編」(@IT、梁瀬介次さん、2001年),

http://www.atmarkit.co.jp/fnetwork/rensai/netpro03/netpro01.html

unix/uuencode.txt · 最終更新: 2009/10/21 00:43 by namikawa
CC Attribution-Noncommercial-Share Alike 3.0 Unported
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0