[[MIME]] [[実体]]の頭領域で、実体に使われている 内容転送符号化 ― CTE を示します。 CTE が使われていない時は、 使っているオクテット種を示します。 *RFC 2045 BNF =encoding := "Content-Transfer-Encoding" ":" mechanism =mechanism := "7bit" / "8bit" / "binary" / "quoted-printable" / "base64" / ietf-token / x-token 値の大文字・小文字は区別しません。 MIME での既定値は "7bit" です。 [[HTTP]] には (RFC になった最終仕様には) CTE は存在しませんが、 相当する既定値的なものは "binary" です。 See also [[RFC-2045のCTE:の定義]] *"7bit", "8bit" 転送符号化 符号化無し。一行998オクテット以下 ([[SMTP]]の制限)で、 行区切は CRLF。7ビットでは値 128 以上は出現しない。 値 0 (NULL) は出現しない。 13 (CR) と 10 (LF) は CRLF 以外としては出現しない。 *"binary" 転送符号化 符号化無し、制限無しのオクテット列。 [[SMTP]] 電子メイル では使用不可。 *ietf-token 転送符号化 ietf-token の登録簿は 。 追加名は登録されていない。 MIME RFC は、相互通信性の観点から 新しい CTE は定義するべきじゃないって言ってる。 *x-token 転送符号化 MIME 以前から使われて来た、 [[uuencode]] 用に、 x-uuencode とか x-uue とか x-uu とかが使われてる。 x-gzip64 は、 gzip で圧縮して base64 したもの。 Perl だと MIME::Decoder::Gzip64 てのがあるみたい。 圧縮 CTE が MIME で標準化されてない理由みたいなもの 。なるほど。 納得できないけど理解はできるな。 ,"7bit" ,%x01-09 / %x0B-0C / %x0E-7F / CRLF ,[[MIME]] ,"8bit" ,%x01-09 / %x0B-0C / %x0E-FF / CRLF ,[[MIME]] ,"base64" ,64進数 [[Base64]] ,[[MIME]] ,"binary" ,%x00-FF ,[[MIME]] ,"quoted-string" ,"=" 2HEXDIGIT /... ,[[MIME]] ,"x-gzip64" ,GNU Zip + Base64 ,"x-uu" ,[[uuencode]] ,"x-uue" ,uuencode ,"x-uuencode",uuencode ,"x-uuencoded",uuencode *See also -[[MIME]] --[[MIME用語の定義]] -[[RFC822と仲間達の頭領域名]] --[[Content-Type:領域]] --[[Content-Encoding:領域]] -[[HTTP]] -[[符号化]] --[[転送符号化]] --[[Base64]] --[[Quoted-Printable]] --[[URI符号化]] [[#searched:CTE]] - [1] [WEAK[2003-09-22 08:29:34 +00:00]] ''[[mime format]]'': - [2] [WEAK[2003-10-12 01:11:04 +00:00]] ''[[名無しさん]]'': [CODE(MIME)[8 bit]] っていう値を見ました。 spam でしたが。。。 - [3] >>1 [CODE[MIME 形式]]という言葉はしばしば用いられますけど、その意味は曖昧ですよね。本当に MIME [[実体]]を指している事もあれば、単に [[Base64]] の意味だったり、 [[uuencode]] 風に Base64 を包んだものだったり、或いは[[媒体型]]のことを言っていたり。 - [4] 腐った実装は [CODE(MIME)[7bits]] とかいう値を返したりするらしいですよ。 - [5] >>4 , : 思った以上に引っ掛かりますよ。 WWW でこれだけ見つかるってことは潜在的にはかなりの量流通してそう。 - [6] [SAMP(MIME)[Content-Transfer-Encoding: uuencode]] というのも結構あって、例えば [[Becky!]] なんかもこれの解読に対応しています : ''Becky! Ver.2の改版履歴'' - [7] ''CBFlib Manual'' : このソフトウェアはファイル形式に MIME を採用していますが、独自の CTE [CODE(MIME)[x-base8]], [CODE(MIME)[x-base10]], [CODE(MIME)[x-base16]] に対応しています。 - [8] >>7 ''cbfext98 v0.7.1'' では [CODE(MIME)[x-base-8]] みたいに [CODE[-]] が3つ共に入ってます。おまけに [CODE(MIME)[base-64]] にまで入ってます。。。なお、 Base8/10/16 の説明はこの文書にあります。 - [9] ''The ISG+IRT/JIM System: Quick Tour - Demonstration On-Line'' : [[XML]] で MIME もどきの語彙を使ってますが、 CTE の値に [CODE(MIME)[X-URL]] というのが使われています。 [[URI符号化]]かと思えばそうではなくて、 [CODE(MIME)[Content-Type: [[message/external-body]]; [[access-type]]=[[url]]]] みたいな意味 (本体が URI) のようです。 - [10] ''ContentTransferEncodingプロパティ'' : この実装は [CODE(MIME)[7-bit]], [CODE(MIME)[8-bit]], [CODE(MIME)[x-uu]], [CODE(MIME)[x-uue]], [CODE(MIME)[x-uuencode]], [CODE(MIME)[uu]], [CODE(MIME)[uue]], [CODE(MIME)[uuencode]], [CODE(MIME)[x-xx]], [CODE(MIME)[x-xxe]], [CODE(MIME)[x-xxencode]], [CODE(MIME)[xx]], [CODE(MIME)[xxe]], [CODE(MIME)[xxencode]], [CODE(MIME)[x-binhex]], [CODE(MIME)[x-gzip64]], [CODE(MIME)[gzip64]] に触れています。 - [11] 何らかの理由で [CODE(MIME)[x-unknown]] を送る MUA があるっぽい。 - [12] uuencode 系の中では、 [CODE(MIME)[x-uuencode]] が一番多くの MUA に理解されそうです。なんとなくですが。 [13] ''File - ドリームキャストでできること'' : [CODE(MIME)[x-dreamcast-file]] というのを使ってます。単に [CODE(MIME)[binary]] のような気がしますが。。。 謎ですが意外と用例が見つかります。 なんでそんなに普及してるんでしょう? わけがわからん。 [14] ''Bommanews technical'' : 内部用として、 [CODE(MIME)[X-Bommanews-[VAR[224]]-[VAR[ZZZ]]]] というのを使っています。 [VAR[224]] は使用オクテット数 (0x20〜0xFF で 224), [VAR[ZZZ]] は encoding block size で現時点では [CODE[40]] 固定。 内部用なのにニュースにうじゃうじゃ流れていたりします。なぜか。 なお、 [CODE(MIME)[X-Bommanews-224-40]] 以外の実例はまだ見つかっていません。 - [15] [CODE(MIME)[x-pp-base128]] : 8ビットの怪しい形式 (参考 ''PostPet V3はOpenGL採用'' ) - [16] [CODE(MIME)[x-ferrum-uids]] : ''IronDoc febase.h'' - [17] >>15 [CODE(MIME)[[[x-postpet/*]]]] という媒体型でセットで使われるみたい。 CTE と CT を分離できるものなのかは不明。 - [18] >>16 [CODE(MIME)[[[x-ferrum-head/*]]]] 又は [CODE(MIME)[[[x-ferrum-menu/*]]]] という媒体型とセットで使用されるぽ。 - [19] [CODE(MIME)[X-Zm-base64]] : Zm は MUA 名の略号だろうな。 に例があるけど、単なる [[Base64]]。 - [20] ''The Information and Content Exchange (ICE) Format and Protocol'' : 純粋に MIME ではありませんが、 MIME から「派生した」 [CODE(XML)[content-transfer-encoding]] 属性の値は [CODE(MIME)[x-native-xml]] 又は [CODE(MIME)[base64]] とされています。前者は、 [[XML]] の標準の方法で[[文字実体]]を使うんだ云々といっていますが、実際には実体の展開は XML 処理系の仕事ですから、 XML 文書内における [CODE(MIME)[7bit]] とか [CODE(MIME)[8bit]] とか [CODE(MIME)[binary]] に相当するものとみていいでしょう。 [21] [CODE(MIME)[gzip]] というのもしばしば見かけますが、ほとんどが [[HTTP]] での用例なので [CODE(HTTP)[[[Content-Encoding]] と勘違いしているのでしょう。ほんとにそんなので機能しているのですかね? ([[WWWブラウザ]]で見て確認くらいしないのかなー。) [28] >>21 [CODE(MIME)[x-gzip]] というのも多数。 どこまで本気なんだか。。。 - [22] [CODE(MIME)[x-ace]] : 電子メイルで [[IDN]] どうするよ? と IDN ML でちょっと話題になったものですが、具体的に形式がどうとかいう話にまでは至ってないみたいです。 - [23] [CODE(MIME)[x-base65]] : - [24] >>23 他に用例がないし、字母が64文字しか見つかってないし、彼が base65 って何よ? とたずねても誰も知る人がいないし、なんかの間違いのような気もするんだけど、 [CODE(MIME)[base65]] じゃなくて [CODE(MIME)[x-base65]] ってのは奇妙な間違い方ではあるんだよなあ。 [25] >>10 xxe ってのは実際用例はあるんだけど正体がよくわかんない。 [29] >>25 uuencode 変種で、字母に [CODE[+-0〜9A〜Za〜z]] を使うものらしい。 - [26] [CODE(MIME)[x-custom3to4]] : 不明。 [[uuencode]] のような感じだけど、違うものなのかな? 誰か検証してください。 [27] [CODE(MIME)[x-pgp-[VAR[version]]]] : [[PGP/MIME]] を CTE として実現しようとした過去の案。実際に仕様としてまとめた草案や実装や用例があるのかは不明。 [28] [CODE(MIME)[x-yenc]] : [[yEnc]]。 関連 ML で激論になった曰くつき。[WEAK[おかげで yEnc 界の一部は MIME 嫌いになったとかならないとか。]] なんだかんだでも結局用例はあります。 本体は [CODE(MIME)[x-uuencode]] のように、 yEnc の符号化をまるごと (メタ情報部も含めて) つっこみます。 なかには、こんな素晴らしいのもありました。 [PRE[ Content-Type: application/binary Content-Transfer-Encoding: x-yenc; line=128; size=2345436; name=021005-301.dwg.zip ]PRE] 謎の[[媒体型]] [CODE(MIME)[[[application/binary]]]] もそうですが、 CTE で引数を使っているのが素敵。 [WEAK[(CTE でも引数を使うのは、 MIME のもともとの思想には反するけど、妥当な態度だと思いますよ。現状では規格違反ですが。[WEAK[(一般論としては正しいと思うんですが、 yEnc の場合本体のめた情報として line とか size とか name とかを持ってるんですよね。それを MIME のレベルで重複させる意味があるのかは謎。それとも純粋な yEnc (謎) を CTE として使って、メタ情報は MIME レベルで指定しようという意味なのかなあ。)]])]] [25] [CODE(MIME)[x-usercode]] : xxencode のように見えるけど謎。