BinHex

BinHex

[3] Macintosh のファイルを ASCII の範囲の図形文字で表現する方法。

  1. 頭, リソース・フォーク, データ・フォークをこの順に並べる。
  2. ランレングス圧縮する。
  3. 6ビットごとに64進数に変換する。

本項は歴史的事項を説明しています。本項の内容の一部または全部は、現在の状況とは異なるかもしれません。

(なお本項の内容の一部または全部は、互換性または歴史的連続性のために現在も有効な場合もあります。しかし新たに利用することは避けるべきです。)

目次

  1. 仕様書
  2. ランレングス圧縮
  3. 64進数の字母
  4. 識別符みたいなもの
  5. 媒体型 application/mac-binhex40
  6. 関連
  7. メモ

仕様書#

ランレングス圧縮#

同じオクテット値が3つ以上続く時に、 「(オクテット値) 0x90 (オクテット数)」 とする。 0x90 自体を表現する時は、「0x90 0x00 0x90 (オクテット数)」 とする。

64進数の字母#

[5] 64進数化は、 MIMEBase64 と同じように、6ビットごとに 区切って、それを文字で表現する。但し字母やその順序は全く異なる。

 !"#$%&'()*+,-0〜9@A〜Z[`a〜r (左から、0〜63)

識別符みたいなもの#

出来上がった文字列の最初と最後に「:」をつけて、64文字ずつ 改行を挟んでわける。で、一番最初に、 「(This file must be converted with BinHex 4.0)」っていう行を つける。

媒体型 application/mac-binhex40#

RFC 1741 で定義。 RFC 1741 には BinHex の説明も載ってる。

パラメーター name があって、値は mime.value。ファイル名。 だけど、これは定義された時代が古いからで、 Content-Disposition:領域の filename パラメーターを 使うべきだと。 (See MIME実体のファイル名)

例:

関連#

[2] MacMIME

[6] 符号化: Base64, uuencode, ISH

メモ#

[1] 内容転送符号化 : BinHex の仕事の内容は意味的には CTE なので、 MIME で使うときに Content-Transfer-Encoding: x-binhex を使う実装もあります。でも、大昔に標準化済みの application/mac-binhex40 が既にあって、これの方が (多分) よく実装されている以上、こっちを使うべきでしょう。ちなみに、 Content-Type: application/mac-binhex40 かつ CTE: x-binhex としたらそれは誤りですよ。