te[77] [DFN[[CODE(MIME)@en[[[text/[VAR[*]]]]]]]] は、[[テキスト]]の [[MIME型]]群です。

* 仕様書

[REFS[
- [22] [CITE@en[RFC 2046 - Multipurpose Internet Mail Extensions (MIME) Part Two: Media Types]] ([TIME[2015-03-22 13:14:46 +09:00]] 版) <http://tools.ietf.org/html/rfc2046#section-3>
- [24] '''[CITE@en[RFC 2046 - Multipurpose Internet Mail Extensions (MIME) Part Two: Media Types]] ([TIME[2015-03-22 13:14:46 +09:00]] 版) <http://tools.ietf.org/html/rfc2046#section-4.1>'''
- [78] [CITE@en[RFC 7231 - Hypertext Transfer Protocol (HTTP/1.1): Semantics and Content]] ([TIME[2014-06-07 01:55:45 +09:00]] 版) <https://tools.ietf.org/html/rfc7231#section-3.1.1.3>
- [11] [CITE@en[RFC 7231 - Hypertext Transfer Protocol (HTTP/1.1): Semantics and Content]] ([TIME[2014-08-07 05:54:02 +09:00]] 版) <https://tools.ietf.org/html/rfc7231#appendix-A.2>
- [14] [CITE@en[RFC 7231 - Hypertext Transfer Protocol (HTTP/1.1): Semantics and Content]] ([TIME[2014-08-07 05:54:02 +09:00]] 版) <https://tools.ietf.org/html/rfc7231#appendix-B>
- [16] [CITE@en[RFC 6838 - Media Type Specifications and Registration Procedures]] ([TIME[2015-02-11 00:35:08 +09:00]] 版) <http://tools.ietf.org/html/rfc6838#section-4.2.1>
]REFS]

* [CODE(MIME)@en[text/*]] MIME 型の一覧

[6] 何らかの規格で定義されている、
あるいは用例・実装例が見つかっている [CODE(MIME)[text/[VAR[*]]]]
媒体型は以下の通りです。

[FIG(list)[ [32] [CODE(MIME)@en[text/[VAR[*]]]] [[MIME型]]
,[CODE(MIME)@en[text/vnd.in3d.3dml]]
,[CODE(MIME)@en[text/vnd.abc]]
,[CODE(MIME)@en[text/abiword]]
,[CODE(MIME)[[[text/act]]]]	,[[ActionSheet]]	,"非標準, 非推奨"	,[W3C NOTE-AS]
,[CODE(MIME)@en[text/x-actionscript]]
,[CODE(MIME)[[[text/x-ada]]]]	,[[Ada]] source	,非推奨	,[WING]
,[CODE(MIME)@en[text/x-adasrc]]
,[CODE(MIME)@en[text/x-amp-html]]
,[CODE(MIME)@en[text/apl]]
,[CODE(MIME)@en[[[text/vnd.sun.j2me.app-descriptor]]]]
,[CODE(MIME)@en[[[text/x-apple-macintalk]]]]
,[CODE(MIME)[[[text/x-ascii-[VAR[*]]]]]]	,[[ASCII]] 文書	,非推奨	,[Apache]
,[CODE(MIME)@en[text/x-ascii-art]]
,[CODE(MIME)@en[[[text/x-ascii-html]]]]
,[CODE(MIME)@en[[[text/x-ascii-plain]]]]
,[CODE(MIME)@en[[[text/x-asm]]]]
,[CODE[text/asciidoc]]
,[CODE(MIME)@en[text/x-asp]]
,[CODE(MIME)@en[text/x-asterisk]]
,[CODE(MIME)@en[[[text/x-astromark]]]]
,[CODE(MIME)[[[text/x-authors]]]]	,著者一覧	,	,[Gnome]
,[CODE(MIME)[[[text/x-ave]]]]	,[[Ave]] document	,	,[WING]
,[CODE[text/x-bvf-layout]]
,[CODE[text/x-bvf-text]]
,[CODE[text/x-bvf-dict-data]]
,[CODE(MIME)[[[text/bib]]]]	,参考文献一覧	,非標準	,[Gnome]
,[CODE(MIME)@en[text/x-bibtex]]
,[CODE(MIME)[[[text/x-apple-binscii]]]]
,[CODE(MIME)@en[text/x-bison]]
,[CIDE(MIME)@en[text/x-brainfuck]]
,[CODE(MIME)@en[text/x-boo]]
,[CODE(MIME)@en[[[text/boolean]]]],,"非標準, [[IANA]] ''未''登録",[[XUP]]
,[CODE(MIME)[[[text/bss]]]]	,[[CSS]] テレビ放送プロファイル	,非標準	,
,[CODE(MIME)[[[text/x-c]]]]	,[[C]] source	,非推奨	,"[HTTP RFC], [Gnome]"
,[CODE(MIME)[[[text/x-c-source]]]]	,C source	,非推奨	,[WING]
,[CODE(MIME)@en[text/cache-manifest]]
,[CODE(MIME)@en[text/x-cassandra]]
,[CODE(MIME)[[[text/x-csrc]]]]	,[[C]] source	,非推奨
,[CODE(MIME)[[[text/x-c++]]]]	,[[C++]] source	,非推奨	,[Gnome]
,[CODE(MIME)[[[text/x-c++hdr]]]]	,C++ header	,非推奨	,
,[CODE(MIME)[[[text/x-c++src]]]]	,C++ source	,非推奨
,[CODE(MIME)@en[[[text/calendar]]]]
,[CODE(MIME)@en[[[text/x-calendar]]]]
,[CODE(MIME)[[[text/cas]]]]	,[[CAS]]	,非標準	,[W3C NOTE-AS]
,[CODE(MIME)@en[text/x-ceylon]]
,[CODE(MIME)@en[text/x-changelog]]
,[CODE(MIME)@en[[[text/x-chdr]]]]
,[CODE(MIME)@en[[[text/cloud-config-archive]]]]
,[CODE(MIME)@en[[[text/cloud-config]]]]
,[CODE(MIME)@en[[[text/cloud-boothook]]]]
,[CODE(MIME)@en[text/x-clojure]]
,[CODE(MIME)@en[text/x-cmake]]
,[CODE(MIME)@en[[[text/cmml]]]],[[CMML]],"[[満期]] ([DEL@en[[[IETF]] [[I-D]]]])"
,[CODE(MIME)@en[[[text/x-cmml]]]],[[CMML]],"[[満期]] ([DEL@en[[[IETF]] [[I-D]]]])"
,[CODE(MIME)[[[text/vnd.wap.co]]]]	,	,非標準	,[WAP]
,[CODE(MIME)@en[text/x-co-desc]]
,[CODE(MIME)@en[text/coffeescript]]
,[CODE(MIME)@en[text/x-coffeescript]]
,[CODE[text/x-component]]
,[CODE(MIME)@en[text/comma-separated-values]]
,[CODE(MIME)@en[text/x-comma-separated-values]]	,[[CSV]]	,->[CODE(MIME)@en[[[text/csv]]]]	,[Gnome]
,[CODE(MIME)@en[text/vnd.net2phone.commcenter.command]]
,[CODE(MIME)@en[text/x-common-lisp]]
,[CODE(MIME)@en[text/x-component]]
,[CODE(MIME)[[[text/vnd.wap.connectivility-xml]]]]	,	,非標準	,[WAP]
,[CODE(MIME)[[[text/x-conf]]]]	,CONF file	,非推奨	,[WING]
,[[text/x-copying]]	,License 規約	,[Gnome]
,[CODE(MIME)[[[text/cpp]]]]	,C++ source	,非標準
,[CODE(MIME)@en[text/x-cpp]]
,[CODE(MIME)[[[text/x-cpp-source]]]]	,C++ source	,非推奨	,[WING]
,[[text/x-credits]]	,著者の credit	,[Gnome]
,[CODE(MIME)@en[text/creole]]
,[CODE(MIME)@en[text/x-cross-domain-policy]]
,[CODE(MIME)@en[text/x-crystal]]
,[CODE(MIME)[[[text/x-csh]]]]	,[[csh]] script	,非推奨	,[Gnome]
,[CODE(MIME)@en[text/x-csharp]]
,[CODE(MIME)@en[text/x-csharpsrc]]
,[CODE(MIME)@en[text/vnd.csr]]
,[CODE(MIME)@en[text/x-csrc]]
,[CODE(MIME)@en[text/css]]
,[CODE(MIME)@en[[[text/x-css-cmml]]]],,[[満期]] ([[IETF]] [[I-D]]),[[CMML]]
,[CODE(MIME)@en[[[text/x-css-inline]]]],[[CSS]] ([CODE(HTMLa)@en[[[style]]]] [[属性]]),,[[WebHACC]]
,[CODE(MIME)@en[text/csv]]
,[CODE(MIME)@en[text/x-csv]]
,[CODE(MIME)@en[text/vnd.curl]]
,[CODE(MIME)@en[[[text/csv-schema]]]],[[CSV Schema]]
,[CODE(MIME)@en[text/x-cvsweb-markup]]
,[CODE(MIME)@en[text/x-cython]]
,[CODE(MIME)@en[text/x-d]]
,[CODE(MIME)@en[text/x-dsrc]]
,[CODE(MIME)[[[text/x-dcl]]]]	,[[DCL]] script	,非推奨	,[Gnome]
,[CODE(MIME)@en[[[text/x-moz-deleted]]]]
,[CODE(MIME)@en[text/x-diff]]
,[CODE(MIME)@en[text/directory]]
,[CODE(MIME)@en[text/x-django]]
,[CODE(MIME)@en[text/x-dockerfile]]
,[CODE(MIME)@en[text/download]]
,[CODE(MIME)@en[text/vnd.dmclientscript]]
,[CODE(MIME)[[[text/x-dos-batch]]]]	,[[DOS]] batch file	,非推奨	,[WING]
,[CODE(MIME)@en[text/x-dpatch]]
,[CODE(MIME)@en[[[text/x-dot-template]]]]
,[CODE(MIME)[[[text/x-dsl]]]]	,[[DSSSL]] stylesheet	,非推奨	,[Gnome]
,[CODE(MIME)[[[text/dsssl]]]]	,DSSSL stylesheet	,"非標準, 非推奨"
,[CODE(MIME)[[[text/x-dtd]]]]	,[[SGML]] [[DTD]]	,非推奨	,[Gnome]
,[CODE(MIME)@en[text/dns]]
,[CODE(MIME)@en[text/x-dylan]]
,[CODE(MIME)@en[text/x-ecl]]
,[CODE(MIME)@en[text/x-emacs-lisp]]
,[CODE(MIME)@en[text/x-email]]
,[CODE(MIME)@en[text/ecmascript]]
,[CODE(MIME)@en[text/x-eiffel]]
,[CODE(MIME)@en[text/x-elixir]]
,[CODE(MIME)@en[text/x-ejs-template]]
,[CODE(MIME)@en[text/x-elm]]
,[CODE(MIME)[[[text/x-emelody]]]]	,	,	,[WAP]
,[CODE(MIME)@en[text/english]]
,[CODE(MIME)@en[text/x-erlang]]
,[CODE(MIME)@en[text/enriched]]
,[CODE(MIME)[[[text/x-errorlist]]]]	,Compilation error list	,	,[WING]
,[CODE(MIME)@en[text/x-estraier-draft]]
,[CODE(MIME)@en[text/event-stream]]
,[CODE(MIME)@en[text/example]]
,[CODE(MIME)@en[text/x-example]]
,[CODE(MIME)@en[text/x-ez80]]
,[CODE(MIME)@en[text/x-factor]]
,[CODE(MIME)@en[text/x-fcl]]
,[CODE(MIME)@en[text/x-feature]]
,[CODE(MIME)@en[text/x-forth]]
,[CODE(MIME)@en[text/x-fortran]]
,[CODE(MIME)@en[text/x-fsharp]]
,[CODE(MIME)@en[text/ftp-dir]]
,[CODE(MIME)@en[text/ftp-dir-listing]]
,[CODE(MIME)@en[text/vnd.fmi.flexstor]]
,[CODE(MIME)@en[text/vnd.fly]]
,[CODE(MIME)@en[text/x-game-map]]
,[CODE(MIME)@en[text/x-gap]]
,[CODE(MIME)@en[text/x-gas]]
,[CODE(MIME)@en[text/x-generic]]
,[CODE(MIME)@en[text/x-genie]]
,[CODE(MIME)@en[text/x-github-pull-request]]
,[CODE(MIME)@en[text/x-gettext-translation]]
,[CODE(MIME)@en[text/x-gettext-translation-template]]
,[CODE(MIME)@en[text/x-go]]
,[CODE(MIME)@en[text/goml]]
,[CODE(MIME)@en[text/gpx]]
,[CODE(MIME)@en[text/x-gql]]
,[CODE(MIME)@en[text/vnd.graphviz]]
,[CODE(MIME)@en[text/x-groovy]]
,[CODE(MIME)@en[text/gss]]
,[CODE(MIME)@en[text/x-gss]]
,[[text/x-gtkrc]]	,[[GTK]] [[rc]]	,[Gnome]
,[CODE(MIME)@en[[[text/x-gwt-rpc]]]]
,[CODE(MIME)@en[[[text/x-glsl-fs]]]]
,[CODE(MIME)@en[text/x-h2h]]
,[CODE(MIME)@en[[[text/x-h2h+html]]]],"[[H2H]] 1.0 ([[HTML]] 混じり)","廃止"
,[[text/h323]]	,[[H.323]] Internet Telephony	,"非標準, [M$]"
,[CODE(MIME)@en[text/x-haml]]
,[CODE(MIME)@en[text/x-handlebars-template]]
,[CODE(MIME)@en[text/x-haskell]]
,[CODE(MIME)@en[text/x-hatena-syntax]]
,[CODE(MIME)@en[text/x-haxe]]
,[CODE(MIME)[[[text/x-hdml]]]]	,[[HDML]]	,時代遅れ	,version={2.0|3.0|3.1}
,[CODE(IMME)@en[text/x-hive]]
,[CODE(MIME)@en[[[text/hjson]]]]
,[CODE(MIME)@en[[[text/html]]]]
,[CODE(MIME)@en[[[text/x-html]]]]
,[CODE(MIME)@en[[[text/htmlr]]]]
,[CODE(MIME)@en[[[text/_moz_htmlcontext]]]]
,[CODE(MIME)@en[[[text/_moz_htmlinfo]]]]
,[CODE(MIME)@en[[[text/x-html-srcdoc]]]]
,[CODE(MIME)[[[text/x-html-template]]]]	,HTML‐to‐be
,[CODE(MIME)[[[text/hnf]]]]	,[[HNF]]	,非標準 ->[CODE(MIME)[text/x-hnf]]	,[NAMAZU]
,[CODE(MIME)[[[text/x-hnf]]]]	,"HNF, H2H 0.9"
,[CODE(MIME)@en[text/x-hxml]]
,[CODE(MIME)[[[text/ico]]]]	,"非標準, 時代遅れ->[CODE(MIME)[[[image/vnd.microsoft.icon]]]]"	,[IANAREG image/vnd.microsoft.icon]
,[CODE(MIME)@en[text/x-jade]]
,[CODE(MIME)[text/x-idl]]
,[CODE(MIME)[[[text/x-imagemap]]]]	,[[鯖側画像写像]]	,"非推奨, 時代遅れ"
,[CODE(MIME)@en[[[text/x-imelody]]]]
,[CODE(MIME)@en[[[text/x-include-once-url]]]]
,[CODE(MIME)@en[[[text/x-include-url]]]]
,[CODE(MIME)[[[text/x-info]]]]	,	,	,[MAGIC]
,[CODE(MIME)@en[text/x-ini]]
,[CODE(MIME)@en[text/x-ini-file]]
,[[text/x-install]]	,[[INSTALL]]	,[Gnome]
,[[text/iuls]]	,(*.uls)	,非標準
,[CODE(MIME)[[[text/vnd.sun.j2me.app-descriptor]]]]	,	,[IANAREG]
,[[text/x-java]]	,[[Java]] source	,"[Gnome], 非推奨"
,[CODE(MIME)[[[text/x-java-source]]]]	,Java source	,非推奨	,[WING]
,[CODE(MIME)@en[[[text/javascript]]]],[[JavaScript]],"[[IETF]] [[情報提供]] [[RFC]] ([[廃止]]) → [CODE(MIME)@en[[[application/javascript]]]], [[IANA]] 登録済 ([[廃止]])","[[RFC 4329]], [IANAREG]"
,[CODE(MIME)@en[[[text/x-javascript]]]]	,[[JavaScript]],→ [CODE(MIME)@en[[[application/javascript]]]]
,[CODE(MIME)[[[text/javascript1.1]]]]	,->[CODE(MIME)[application/x-javascript; version=1.1]]	,"非標準, 時代遅れ"
,[CODE(MIME)[[[text/javascript1.2]]]]	,->[CODE(MIME)[application/x-javascript; version=1.2]]	,"非標準, 時代遅れ"
,[CODE(MIME)[[[text/javascript1.3]]]]	,->[CODE(MIME)[application/x-javascript; version=1.3]]	,"非標準, 時代遅れ"
,[CODE(MIME)@en[[[text/javascript+json]]]]
,[CODE[text/javascript+protovis]]
,[CODE(MIME)[[[text/x-jdoc-format]]]]	,[[Jドキュメント]]書式	,
,[CODE(MIME)@en[[[text/x-jquery-tmpl]]]]
,[CODE(MIME)@en[text/js]]
,[CODE(MIME)@en[text/x-js]]
,[CODE(MIME)@en[[[text/json]]]]
,[CODE(MIME)@en[[[text/x-json]]]]
,[CODE(MIME)@en[[[text/x-jsrender]]]]
,[CODE(MIME)@en[text/jss]]
,[CODE(MIME)@en[text/jsss]]
,[CODE(MIME)@en[text/jsx]]
,[CODE(MIME)@en[text/x-julia]]
,[CODE(MIME)@en[text/typescript-jsx]]
,[CODE(MIME)@en[text/kendo-tmpl]]
,[CODE[text/x-kn-txt]]
,[CODE(MIME)[[[text/x-kom-basic]]]]	,	,
,[CODE(MIME)[[[text/x-ksh]]]]	,[[ksh]] shell script	,非推奨
,[CODE(MIME)[[[text/vnd.latex-z]]]]	,	,	,[IANAREG]
,[CODE(MIME)@en[[[text/ldif]]]]
,[CODE(MIME)@en[text/less]]
,[CODE(MIME)@en[text/x-less]]
,[CODE(MIME)@en[text/x-libtool]]
,[CODE(MIME)@en[text/livescript]]
,[CODE(MIME)@en[text/x-livescript]]
,[CODE(MIME)@en[text/x-literate-haskell]]
,[CODE(MIME)@en[text/x-lua]]
,[CODE(MIME)@en[text/x-lua-source]]
,[CODE(MIME)@en[text/x-mail]]
,[CODE(MIME)[[[text/x-makefile]]]]	,[[Makefile]]	,非推奨	,"[Gnome], [WING]"
,[CODE(MIME)@en[text/markdown]]
,[CODE(MIME)@en[[[text/x-markdown]]]]
,[CODE(MIME)@en[[[text/x-mathjax-config]]]]
,[CODE(MIME)@en[text/x-mathematica]]
,[CODE(MIME)@en[[[text/mathml]]]]
,[CODE(MIME)@en[text/x-matlab]]
,[CODE(MIME)@en[[[text/x-mbl]]]]
,[CODE(MIME)@en[[[text/mdl]]]]
,[CODE(MIME)@en[[[text/vnd.ms-mediapackage]]]]
,[CODE(MIME)@en[text/x-meson]]
,[CODE(MIME)@en[[[text/x-message-pem]]]]
,[CODE(MIME)@en[[[text/x-message-rfc934]]]]
,[CODE(MIME)@en[[[text/x-message-rfc1153]]]]
,[CODE(MIME)@en[text/mirc]]
,[CODE(MIME)@en[[[text/x-mml]]]],[[MML]],,[Vodafone]
,[CODE[text/x-moin1.7]]
,[CODE(MIME)@en[[[text/x-moc]]]]
,[CODE(MIME)@en[text/x-modelica]]
,[CODE(MIME)@en[[[text/vnd.motorola.reflex]]]]
,[CODE(MIME)@en[[[text/mp4]]]]
,[CODE(MIME)@en[[[text/mpml-basic-layout]]]]
,[CODE(MIME)@en[text/x-mscgen]]
,[CODE(MIME)@en[text/x-msgenny]]
,[CODE(MIME)@en[[[text/x-msil]]]]
,[CODE(MIME)@en[text/x-mssql]]
,[CODE(MIME)@en[[[text/mustache]]]]
,[CODE(MIME)@en[text/x-mysql]]
,[CODE(MIME)@en[text/x-mariadb]]
,[CODE(MIME)@en[[[text/n3]]]]
,[CODE(MIME)@en[[[text/x-nemerle]]]]
,[CODE(MIME)@en[text/x-netrexx]]
,[CODE(MIME)@en[[[text/vnd.iptc.newsml]]]]
,[CODE(MIME)@en[text/nginx]]
,[CODE(MIME)@en[[[text/x-nreum-data]]]]
,[CODE(MIME)@en[text/x-nsis]]
,[CODE(MIME)@en[[[text/ng-template]]]]
,[CODE(MIME)@en[text/n-triples]]
,[CODE(MIME)@en[text/ntriples]]
,[CODE(MIME)@en[[[text/x-nquads]]]]
,[CODE(MIME)@en[[[text/vnd.iptc.nitf]]]]
,[CODE(MIME)@en[text/x-objcsrc]]
,[CODE(MIME)@en[text/x-objectivec]]
,[CODE(MIME)@en[text/x-objective-j]]
,[CODE(MIME)@en[text/x-ocaml]]
,[CODE(MIME)@en[text/x-ocl]]
,[CODE(MIME)@en[text/x-octave]]
,[CODE(MIME)@en[[[text/x-oeb1-css]]]]
,[CODE(MIME)@en[[[text/x-oeb1-document]]]]
,[CODE(MIME)@en[[[text/ofx]]]]
,[CODE(MIME)@en[[[text/oobhtml]]]]
,[CODE(MIME)@en[[[text/x-opml]]]]
,[CODE(MIME)@en[[[text/os-data]]]],[[OpenSocial]] [[データ]],"非標準, [[IANA]] ''未''登録",[[OpenSocial]]
,[CODE(MIME)@en[[[text/os-template]]]],[[OpenSocial]] [[雛形]],"非標準, [[IANA]] ''未''登録",[[OpenSocial]]
,[CODE(MIME)@en[[[text/owl-manchester]]]]
,[CODE[text/mapml]]
,[CODE(MIME)@en[text/x-oz]]
,[CODE(MIME)@en[[[text/x-packed-dat]]]]
,[CODE[text/x-phabricator-request]]
,[CODE(MIME)[[[text/x-pascal]]]]	,[[PASCAL]] source	,非推奨	,[WING]
,[CODE(MIME)[[[text/parityfec]]]]	,	,"[IANAREG], [[RFC 3009]]"
,[CODE(MIME)[[[text/x-patch]]]]	,[[diff]]	,非推奨 ->[CODE(MIME)[[[application/x-patch]]]]
,[CODE(MIME)@en[[[text/perl]]]],[[Perlスクリプト]],非標準
,[CODE(MIME)[[[text/x-perl]]]]	,[[Perl]] script	,→[CODE(MIME)[[[text/perl]]]]	,"[[XHTML 2.0]] 例, [Gnome], [WING]"
,[CODE(MIME)[[[text/perlscript]]]]	,[[PerlScript]]	,非標準 ->[CODE(MIME)@en[[[text/x-perl]]]]	,See [[スクリプトの媒体型]>>20]
,[CODE(MIME)@en[text/x-script.perl]]
,[CODE(MIME)@en[[[text/x-perl-script]]]],[[Perl]]
,[CODE(MIME)@en[text/x-script.perl-module]]
,[CODE(MIME)[[[text/x-pgp-cleartext-signed]]]]	,[[PGPメッセージ交換形式]] (クリア署名) message body
,[CODE(MIME)@en[text/php]]
,[CODE(MIME)@en[text/x-php]]
,[CODE(MIME)@en[text/x-php-script]]
,[CODE(MIME)[[[text/x-php-source]]]]	,[[PHP]] source	,非推奨	,[WING]
,[CODE(MIME)@en[text/x-pig]]
,[CODE(MIME)@en[text/x-plsql]]
,[CODE(MIME)@en[text/x-pkg-config]]
,[CODE(MIME)@en[text/pose]]
,[CODE(MIME)@en[text/x-pose]]
,[CODE(MIME)@en[text/x-pgsql]]
,[CODE(MIME)@en[[[text/x-moz-place]]]]
,[CODE(MIME)@en[[[text/x-moz-place-container]]]]
,[CODE(MIME)@en[[[text/x-placeholder]]]]
,[CODE(MIME)[[[text/plain]]]]	,[[平文]]	,	,"[IANAREG], [MIME], [[RFC 3679]]"
,[CODE(MIME)[[[text/x-plsql]]]]	,[[PLSQL]] source	,非推奨	,[WING]
,[CODE(MIME)[[[text/x-pmaildx]]]]	,[[オープンネットコンテンツ]]	,	,
,[CODE(MIME)@en[[[text/x-po]]]],[[PO]]
,[CODE(MIME)@en[text/x-pot]]
,[CODE(MIME)@en[text/x-pox]]
,[CODE(MIME)@en[[[text/pod]]]]
,[CODE(MIME)@en[[[text/part-handler]]]]
,[CODE(MIME)@en[text/x-phabricator-request]]
,[CODE(MIME)@en[text/x-prolog]]
,[CODE(MIME)@en[text/x-properties]]
,[CODE(MIME)@en[text/x-protobuf]]
,[CODE(MIME)@en[text/pson]]
,[CODE(MIME)@en[text/x-psp]]
,[CODE(MIME)@en[text/x-pug]]
,[CODE(MIME)@en[text/x-puppet]]
,[CODE(MIME)@en[text/python]]
,[CODE(MIME)[[[text/x-python]]]]	,[[Python]] script	,非推奨	,"[Gnome], [WING]"
,[CODE(MIME)@en[[[text/x-python-script]]]]
,[CODE(MIME)@en[text/x-q]]
,[CODE(MIME)@en[[[text/qif]]]]
,[CODE(MIME)@en[[[text/x-qif]]]]
,[CODE(MIME)@en[text/x-r]]
,[CODE(MIME)[[[text/x-rc]]]]	,DOS RC file	,非推奨	,[WING]
,[CODE(MIME)[[[text/rdf]]]]	,[[RDF/XML]]	,非標準 ->[CODE(MIME)[[[application/rdf+xml]]]]	,[Mozilla]
,[CODE(MIME)@en[[[text/rdf+n3]]]],[[N3]],[[W3C]] [[チーム提出物]],[[N3]]
,[CODE(MIME)@en[text/rdf+turtle]]
,[[text/x-readme]]	,[[README]]	,[Gnome]
,[CODE(MIME)[[[text/vnd.rn-realtext]]]]	,(*.rt)	,非標準	,[Real]
,[CODE(MIME)[[[text/vnd.rn-realtext3d]]]]	,(*.r3t)	,非標準	,[Real]
,[CODE(MIME)@en[text/red]]
,[CODE(MIME)@en[[[text/x-regexp-js]]]],[[JavaScript]] [[正規表現]]
,[CODE(MIME)[[[text/x-request-mfr]]]]
,[CODE(MIME)@en[[[text/microsoft-resx]]]]
,[CODE(MIME)@en[text/x-reject]]
,[CODE(MIME)@en[[[text/rfc822]]]]
,[CODE(MIME)@en[[[text/rfc822-headers]]]]
,[CODE(MIME)@en[[[text/richtext]]]]
,[CODE(MIME)@en[[[text/rocketscript]]]]
,[CODE(MIME)@en[text/x-rpm-spec]]
,[CODE(MIME)@en[text/x-rpm-changes]]
,[CODE(MIME)@en[text/x-rst]]
,[CODE(MIME)@en[text/ruby]]
,[CODE(MIME)@en[text/x-ruby]]
,[CODE[text/rust]]
,[CODE(MIME)@en[[[text/x-www-rules]]]],,,[[libwww]]
,[CODE(MIME)@en[[[text/prs.fallenstein.rst]]]]
,[CODE(MIME)@en[text/x-rsrc]]
,[CODE(MIME)@en[[[text/rtf]]]]
,[CODE(MIME)@en[[[text/rtx]]]]
,[[text/x-roff]]	,	,[Namazu]
,[CODE(MIME)[[[text/rubyscript]]]]	,[[ActiveRubyScript]]	,非標準 (See [[スクリプトの媒体型]>>10])	,[ActiveRubyScript]
,[CODE(MIME)@en[[[text/ruby-script]]]]
,[CODE(MIME)@en[text/rust]]
,[CODE(MIME)@en[text/x-rustsrc]]
,[CODE(MIME)@en[text/x-sas]]
,[CODE(MIME)@en[text/x-sass]]
,[CODE(MIME)@en[text/x-scala]]
,[CODE(MIME)[[[text/x-scheme]]]]	,[[Scheme]] script	,非推奨	,[Gnome]
,[CODE(MIME)@en[[[text/script]]]]
,[CODE(MIME)@en[[[text/x-script-element-content]]]],[CODE(HTMLe)@en[[[script]]]] [[要素]]の[[内容]]
,[CODE(MIME)@en[[[text/x-script-element-text]]]]
,[CODE(MIME)@en[[[text/x-script-inline-documentation]]]]
,[CODE(MIME)@en[[[text/x-script.perl]]]]
,[CODE(MIME)@en[[[text/x-script.perl-module]]]]
,[CODE(MIME)@en[[[text/x-script.python]]]]
,[CODE(MIME)@en[[[text/x-script.ruby]]]]
,[CODE(MIME)[[[text/scriptlet]]]]	,[[Scriptlet]]	,非標準	,"[M$], See [[スクリプトの媒体型]>>23]"
,[CODE(MIME)@en[text/x-scriptlet]]
,[CODE(MIME)@en[text/x-scss]]
,[CODE(MIME)@en[[[text/x-moz-search-engine]]]]
,[CODE(MIME)@en[[[text/x-serialization]]]]
,[CODE(MIME)@en[text/x-server-parsed-html]]
,[CODE(MIME)@en[text/x-server-parsed-html3]]
,[CODE(MIME)[[[text/x-setext]]]]	,Structure Enhanced Text,"[APACHE], [Gnome]"
,[CODE(MIME)[[[text/sgml]]]]	,[[SGML]] [[解析対象実体]]	,	,"[IANAREG], [[RFC 1874]]"
,[CODE(MIME)[[[text/x-sgml]]]]	,SGML 解析対象実体	,時代遅れ ->[CODE[text/sgml]]
,[CODE(MIME)[[[text/x-sh]]]]	,[[sh]] script	,非推奨	,[Gnome]
,[CODE(MIME)@en[[[text/x-shellscript]]]]
,[CODE(MIME)@en[[[text/site]]]]
,[CODE(MIME)@en[[[text/sitemap]]]]
,[CODE(MIME)@en[text/x-smarty]]
,[CODE(MIME)[[[text/smil-basic-layout]]]]	,[[SMIL Basic Layout Language]]	,"非標準, 非推奨"	,[SMIL 1.0]
,[CODE(MIME)@en[[[text/sms]]]]
,[CODE(MIME)@en[text/x-solr]]
,[CODE(MIME)@en[text/x-soy]]
,[CODE(MIME)[[[text/x-speech]]]]	,発話合成データ (MVP Solutions)	,
,[CODE(MIME)[[[text/spice]]]]
,[CODE(MIME)[[[text/vnd.in3d.spot]]]]	,	,	,[IANAREG]
,[CODE(MIME)[[[text/spreadsheet]]]]	,Spreadsheet interchange	,非標準	,[Gnome]
,[CODE(MIME)@en[text/x-spreadsheet]]
,[CODE(MIME)[[[text/x-sql]]]]	,[[SQL]] source	,非推奨	,"[Gnome], [WING]"
,[CODE(MIME)@en[text/x-squirrel]]
,[CODE(MIME)@en[text/x-srt]]
,[CODE(MIME)@en[text/x-ssa]]
,[CODE[text/x-ssi-html]]
,[CODE(MIME)@en[text/x-stex]]
,[CODE(MIME)@en[text/strings]]
,[CODE(MIME)@en[text/x-stsrc]]
,[CODE(MIME)@en[text/x-styl]]
,[CODE(MIME)@en[text/stylesheet]]
,[CODE(MIME)[[[text/dvb.subtitle]]]]	,	,非標準	,[MHP 1.1]
,[CODE(MIME)@en[text/x-suikawiki]]
,[CODE[text/x.suikawiki.image]]
,[CODE(MIME)@en[text/x-swift]]
,[CODE(MIME)@en[[[text/x-syn]]]]
,[CODE(MIME)@en[text/x-systemverilog]]
,[CODE(MIME)@en[text/t140]]
,[CODE(MIME)@en[text/tab-separated-values]]
,[CODE(MIME)@en[text/x-tab-separated-values-star]]
,[CODE(MIME)@en[text/prs.lines.tag]]
,[CODE(MIME)@en[text/tcl]]
,[CODE(MIME)[[[text/x-tcl]]]]	,Tcl script	,非推奨	,[Gnome]
,[CODE(MIME)[[[text/dvb.teletext]]]]	,	,非標準	,[MHP 1.1]
,[CODE(MIME)@en[[[text/x-tmpl]]]]
,[CODE(MIME)@en[[[text/template]]]]
,[CODE(MIME)@en[text/template7]]
,[CODE(MIME)@en[[[text/teon]]]]
,[CODE(MIME)[[[text/x-tex]]]]	,[[TeX]] source	,	,[Gnome]
,[CODE(MIME)[[[text/x-texinfo]]]]	,[[Texinfo]] source	,	,[Gnome]
,[CODE(MIME)@en[[[text/x-moz-text-internal]]]]
,[CODE(MIME)@en[text/x-textile]]
,[CODE[text/x-texmacs]]
,[CODE[text/x-texmacs.doc]]
,[CODE[text/x-texmacs.sty]]
,[CODE(MIME)@en[text/x-tiddlywiki]]
,[CODE(MIME)@en[[[text/tiscript]]]],[[Terra Informatica Script]],"非標準, [[IANA]] ''未''登録"
,[CODE(MIME)@en[text/x-toml]]
,[CODE(MIME)@en[text/x-tornado]]
,[CODE(MIME)@en[[[text/x-trac-wiki]]]]
,[CODE(MIME)@en[text/troff]]
,[[text/x-troff]]	,[[troff]] source	,[Gnome]
,[[text/x-troff-man]]	,[[man]] page	,[Gnome]
,[[text/x-troff-me]]	,	,[Gnome]
,[[text/x-troff-mm]]	,	,[Gnome]
,[[text/x-troff-ms]]	,	,[Gnome]
,[CODE(MIME)@en[[[text/tsv]]]]
,[CODE(MIME)@en[text/x-ttcn-asn]]
,[CODE(MIME)[[[text/t-time]]]]	,[[T-Time]] スタイル・シート	,"非標準, 非推奨"
,[CODE(MIME)@en[text/x-ttcn]]
,[CODE(MIME)@en[text/x-ttcn3]]
,[CODE(MIME)@en[text/x-ttcnpp]]
,[CODE(MIME)@en[text/x-ttcn-cfg]]
,[CODE(MIME)[[[text/x-ttml]]]]	,	,	,[WAP]
,[CODE(MIME)@en[text/turtle]]
,[CODE(MIME)@en[text/x-turtlestar]]
,[CODE(MIME)@en[text/typescript]]
,[CODE(MIME)@en[[[text/x-underscore-template]]]]
,[CODE(MIME)@en[[[text/unicode]]]]
,[CODE(MIME)@en[[[text/upstart-job]]]]
,[CODE(MIME)@en[[[text/uri-list]]]]
,[CODE(MIME)@en[[[text/url-list]]]]
,[CODE(MIME)@en[[[text/x-moz-url]]]]
,[CODE(MIME)@en[[[text/x-moz-url-data]]]]
,[CODE(MIME)@en[[[text/x-moz-url-desc]]]]
,[CODE(MIME)@en[[[text/x-moz-url-priv]]]]
,[CODE(MIME)@en[[[text/url]]]]
,[CODE(MIME)@en[[[text/x-url]]]]
,[CODE(MIME)[[[text/x-url-shortcut]]]]	,[[Internet Shortcut]]	,
,[CODE(MIME)[[[text/dvb.utf8]]]]	,Java 修正 [[UTF-8]] 文	,非標準	,[MHP 1.1]
,[CODE(MIME)[[[text/x-uuencode]]]]	,[[uuencode]]	,非推奨 ->[CODE(MIME)[[[Content-Transfer-Encoding]]: [[x-uuencode]]]] など
,[CODE(MIME)@en[text/x-vala]]
,[CODE(MIME)[[[text/x-vb]]]]	,[[VB]] source	,非推奨
,[CODE(MIME)@en[text/x-vbnet]]
,[CODE(MIME)[[[text/x-vb-source]]]]	,[[VB]] source	,非推奨	,[WING]
,[CODE(MIME)@en[[[text/vbs]]]]
,[CODE(MIME)@en[[[text/vbscript]]]]
,[CODE(MIME)@en[[[text/x-vbscript]]]]
,[CODE(MIME)@en[[[text/x-vbookmark]]]],[[vBookmark]],,[Vodafone]
,[CODE(MIME)@en[[[text/x-vcalendar]]]]
,[CODE(MIME)@en[[[text/vcalendar]]]]
,[CODE(MIME)@en[[[text/vcard]]]]
,[CODE(MIME)@en[[[text/x-vcard]]]],,"[[Gnome]], [[Chrome]]"
,[CODE(MIME)[[[text/x-vcard]]]]	,[[vCard]]	,	,[Gnome]
,[CODE(MIME)@en[[[text/x-vcf]]]]
,[CODE(MIME)@en[text/vcsswg]]
,[CODE(MIME)@en[text/velocity]]
,[CODE(MIME)@en[text/x-verilog]]
,[CODE(MIME)@en[text/x-verilog-src]]
,[CODE(MIME)@en[text/x-vertex]]
,[CODE(MIME)@en[text/x-vhdl]]
,[CODE(MIME)@en[text/x-yacc]]
,[CODE(MIME)@en[[[text/x-vmessage]]]],[[vMessage]],,[Vodafone]
,[CODE(MIME)@en[[[text/x-vnote]]]],[[vNote]],,[Vodafone]
,[CODE(MIME)[[[text/vnd.viewcvs-markup]]]]	,([[ViewCVS]] 内部用)	,"非標準, 非推奨"
,[CODE(MIME)[[[text/x-vmel]]]]	,	,	,[WAP]
,[CODE(MIME)@en[text/vtt]]
,[CODE(MIME)@en[text/x-vue]]
,[CODE(MIME)[[[text/vnd.wap.si]]]]	,	,	,[IANAREG]
,[CODE(MIME)[[[text/vnd.wap.sl]]]]	,	,	,[IANAREG]
,[CODE[text/x-wkt]]
,[CODE(MIME)[[[text/wml]]]]	,[[WML]] 文書	,非推奨 ->[CODE(MIME)[text/vnd.wap.wml]]
,[CODE(MIME)[[[text/vnd.wap.wml]]]]	,WML 文書	,	,[IANAREG] [SAMP(MIME)[text/vnd.wap.wml; type=4365]]
,[CODE(MIME)[[[text/x-wap.wml]]]]	,WML 文書	,非推奨 ->[CODE(MIME)[text/vnd.wap.wml]]]]
,[[text/vnd.wap.wmlscript]]	,	,[IANAREG]
,[CODE(MIME)[[[text/x-wap-wta-wml]]]]	,	,[WAP]
,[CODE(MIME)@en[text/x-webidl]]
,[CODE(MIME)@en[text/webviewhtml]]
,[CODE(MIME)@en[text/x-web-intelligent]]
,[CODE(MIME)@en[text/wiki]]
,[CODE(MIME)@en[text/x-wiki]]
,[CODE(MIME)@en[text/x.wiki]]
,[CODE(MIME)@en[text/vnd.ms-word]]
,[CODE(MIME)@en[text/vnd.wordperfect]]
,[CODE(MIME)@en[text/worker]]
,[CODE(MIME)@en[text/wreq]]
,[CODE(MIME)@en[text/xaml]]
,[CODE(MIME)@en[text/x-xu]]
,[CODE(MIME)@en[text/x-xetext]]
,[CODE(MIME)@en[text/xhtml]]
,[CODE(MIME)@en[text/xhtml+xml]]
,[CODE(MIME)@en[text/xml]]
,[CODE(MIME)[[[text/x-xml]]]]	,XML 実体	,非推奨 ->[CODE(MIME)[application/xml]]	,[WING]
,[CODE(MIME)[[[text/xml-content]]]]	,XML [[内容]]	,非標準 =>[CODE(MIME)[[[application/xml-external-parsed-entity]]]] など
,[CODE(MIME)@en[text/xml-dtd]]
,[CODE(MIME)@en[text/xml-external-parsed-entity]]
,[CODE(MIME)@en[text/xml+oembed]]
,[CODE(MIME)@en[text/xml-script]]
,[CODE(MIME)[[[text/xmlp+xml]]]]	,[[XML Protocol]]	,非標準
,[CODE(MIME)[[[text/xml-soap]]]]	,[[SOAP]]	,非標準	,I-D [[draft-box-http-soap]]
,[[text/xmms-playlist]]	,XMMS Playlist (*.m3u)	,非標準 ->[CODE[audio/x-mpegurl]]
,[CODE(MIME)[[[text/xsl]]]]	,[[XSL]] スタイル・シート	,非標準 ->[CODE(MIME)[[[application/xslt+xml]]]]	,"[W3C], [MS]"
,[CODE(MIME)[text/xslfo]]
,[CODE(MIME)[text/xul]]
,[CODE(MIME)@en[text/x-yacas]]
,[CODE(MIME)@en[text/yaml]]
,[CODE(MIME)@en[text/x-yaml]]
,[CODE(MIME)@en[text/x-z80]]
]FIG]

* 意味

[17] [[最上位型]] [CODE(MIME)@en[[[text]]]] は、
[RUBYB[テキスト情報]@en[textual information]]を表しており [SRC[>>22]]、
主に[[テキスト]]で構成されるものを送信することを意図したものです [SRC[>>16, >>24]]。

[19] [CODE(MIME)@en[[[text]]]] に分類できるものには、
表示や処理などの指示を含まない[RUBY[[[平文]]][プレインテキスト]]だけでなく、
それを超えた[[リッチテキスト]]も含まれます。
特別なソフトウェアによってテキストの見た目を向上させることができても構いませんが、
内容がどんなものか知るためにそのようなソフトウェアが必須であってはなりません [SRC[>>22]]。
[CODE[[[text]]]]
であるのは適切なソフトウェアがなくても[[利用者]]にそのまま表示してもよさそうなもので、
[CODE[[[text]]]] でないものはそうではないものとされています [SRC[>>16, >>24]]。

[EG[
[23] バイナリーデータを埋め込む形式は、直接読めるとはみなしません [SRC[>>22]]。
]EG]

* 引数

[55] [[RFC 3676]] は、 [CODE(MIME)[[[text/plain]]; [[format]]=[[flowed]]]]
以外のすべての [CODE(MIME)[text/*]] 型では送信時に
[CODE(MIME)[[[delsp]]]] 引数を使用する'''べきではない'''し、
受信時に無視する'''べきである'''としています [SRC[RFC 3676 4.]]。

[CODE(MIME)[text/plain]] に限らずすべての [CODE(MIME)[text/[VAR[*]]]]
が対象とされているのは、認識できない [CODE(MIME)[text/[VAR[*]]]]
は [CODE(MIME)[text/plain]] とみなすことになっているので、
不要な混乱を防ぐためでしょう。 (しかし、そうだとすると、
すべての [CODE(MIME)[text/[VAR[*]]]] で [CODE(MIME)[text/plain]]
の引数と同じ名前のものが使えなくなりますし、すべての媒体型で
[CODE(MIME)[[[application/octet-stream]]]] 
の引数と同じ名前のものが使えなくなってしまいます。)

ともかく、 RFC 3676 の規定があるので、 [CODE(MIME)[text/[VAR[*]]]]
では RFC 3676 と同じ意味以外で [CODE(MIME)[delsp]] 
という名前の引数を定義しない方が良いでしょう。
[WEAK[(RFC 3676 は送受信時 (それもおそらくメイルの。) の'''するべき'''の規定しかしていませんが、使えない / 使いづらいものを定義しても仕方がないので、定義すらするべきではないでしょう。)]]

* [CODE(MIME)@en[charset]] 引数

[63] [CODE(MIME)@en[[[text/[VAR[*]]]]]] の多くの [[MIME型]]には [CODE(MIME)@en[[[charset]]]]
[[引数]]があります。詳しくは [CODE(MIME)@en[[[charset]]]] [[引数]]の項を参照してください。

[15] 未知の [CODE(MIME)@en[[[text/[VAR[*]]]]]] [[MIME型]]は
[CODE(MIME)@en[[[text/plain]]]] として扱う旨の規定が [[MIME]]
にはありますが、 [CODE(MIME)@en[[[charset]]]] をどう解釈するべきかは定かではありません。
当初の [[MIME]] の目論見ではすべて [CODE(MIME)@en[[[text/plain]]]] と解釈し得るものを
[CODE(MIME)@en[[[text/[VAR[*]]]]]] に集めたかったのでしょうが、
実際には各 [CODE(MIME)@en[[[text/[VAR[*]]]]]] [[MIME型]]でそれぞれまったく異なる[[文字コード]]の処理を規定しています。

[18] [[Webブラウザー]]の実装では[[テキスト]]と判定されるものは同じ
[[sniffing]] の方法を実装していると思われます。 (ただし「[[テキスト]]」は
[CODE(MIME)@en[[[text/[VAR[*]]]]]] とは一致しません。 [[HTML]] などはここでいう
「[[テキスト]]」ではありません。)

* 改行と正規形

[83] [[MIME]] では、 [[text/*]] [[媒体型]]の[[正規化]]方法が規定されています。

[[OS]] などの環境の違いによって、改行は [CODE[0x0D]]
だったり [CODE[0x0A]] だったり [CODE[0x0D 0x0A]]
だったりその他だったりします。
[[電子メイル]]での情報交換ではこれを [CODE[0x0D 0x0A]]
に統一しよう、というのが正規化の骨子です。

MIME 適合 [[MUA]] は、 [CODE[text/*]] の MIME 
[[実体]]を送信する前に正規化しなければなりません。
また、受信して表示する時にはその環境に応じて正規形から
local form に変換します。

[25] [CODE(MIME)@en[[[text/*]]]] の[RUBYB[[[正準形]]]@en[canonical form]]は、
[[改行]]を常に [[CRLF]] で表現しなければ[['''なりません''']] [SRC[>>24]]。

[26] [[MIME]] の [CODE(MIME)@en[[[text/*]]]] では、 [[CRLF]]
は[[改行]]を表さなければ[['''なりません''']]。 [[CR]] や [[LF]]
をそれ以外で使ってはいけません。 [SRC[>>24]]

[44] 関連: [[行 (MIME)]]

;; [27] これは[[改行]]をどう表現しなければならないかの制約であり、
どう表示するか (どこで新しい行に進むか) の制約では無い [SRC[>>24]] ようです。

[79] [[HTTP]] においては、[[送信者]]は、 [CODE(MIME)@en[[[text/*]]]] の[[改行]]を、
[[CRLF]] でも、 [[CR]] のみでも、 [[LF]] のみでも、いずれで[[生成]]しても構いません。
ただし[[表現]]全体で一貫していないといけません。 [SRC[>>78]]

[80] [[HTTP]] においては、[[送信者]]は、 [CODE(MIME)@en[[[text/*]]]] の[[改行]]を、
[[CRLF]] でも、 [[CR]] のみでも、 [[LF]] のみでも、いずれであっても構文解析できなければ[['''なりません''']]
[SRC[>>78]]。

;; [82] これらの [[HTTP]] における規定が、どれだけ実態にあったものなのかは疑問です。
例えば [CODE(MIME)@en[[[text/html]]]] については[[改行]]として [[CR]]、[[LF]]、
[[CRLF]] のいずれも認められていますが、 >>78 や >>80 に基づき認められるというよりは、
[[HTML Standard]] により直接的に認められていると考えるべきでしょう。
その他の [[MIME型]]も、それぞれが構文や構文解析方法を定義していて、
厳密にはそれらの解釈は等しくありません。

[81] [[HTTP]] においては、 [CODE(MIME)@en[[[text/*]]]] において [CODE[[[0x0D]]]]
と [CODE[[[0x0A]]]] を [CODE(charname)@en[[[CR]]]] と [CODE(charname)@en[[[LF]]]]
にそれぞれ用いる [[charset]] 以外であっても使うことができます [SRC[>>78]]。

[84] 実際には HTTP, [[RTSP]], [[SIP]] で正規化なんてしようものなら何が起こるかわかったもんじゃないです。

;; [85] もっとも、 RTSP や SIP では [CODE[text/[VAR[*]]]] なんてそんな使わないかな。

[88] ほとんど無視されてますが、 HTTP でも CR や LF や CRLF の使用は一つの[[実体本体]]内では一貫していないといけないとされてます。つまりは、改行表現が CR と LF の混合とか、 CRLF だけど一部 LF とか、そういうのは駄目だということですね。

[89] それから、 2616 は各媒体型がそれぞれみな正規形を持っているみたいなことを書いてますが、実際には持っている媒体型もあれば持ってない型もあって、むしろわざわざ規定している方が稀ですね。で、 MIME が絶対的に規定した [CODE[text/[VAR[*]]]] については緩和するなんていうもんですから、実質 HTTP には媒体型の正規化なんて概念はないと見ていいでしょう。[WEAK[(実際、 MIME 的正規化なんて考えずに実装したのを後から標準化したのが HTTP RFC ですから。。。 HTTP RFC は表面的 MIME 互換性[WEAK[(というかつじつまあわせ)]] のために苦心してますよ。。。)]]

[90] >>89 でもこの辻褄合わせは建前みたいなもので、全然役に立たないよねえ。もうちょっと MIME と HTTP と、あとは RTSP とか SIP で共通してれば同じ library を使えただろうけど、これだけ違ってると。。。

[91] [[RFC 2046]] の4章の最初に
>   The content of these types must be handled by non-MIME mechanisms;
they are opaque to MIME processors.

という説明があります。にも関わらず、 
[CODE(MIME)@en[[[text/[VAR[*]]]]]] に対しては[[正準形]]が定義されています。
これらは直ちに矛盾はしませんが 
([[実体]]の[[適合性]]と[[利用者エージェント]]の[[要件]]は別)、
設計方針として整合しているようには思えません。

[12] [[HTTP]] と [[MIME]] の[[関門]]で変換が発生すると[[検査和]]が壊れてしまいますから、
[[HTTP]] であっても[[検査和]]を使う場合には[[正準形]]が[RUBYB[推奨]@en[recommended]]されています
[SRC[>>11]]。

[FIG(quote)[
[FIGCAPTION[
[39] [CITE[Cabinet Files]], [TIME[2023-08-06T12:03:14.000Z]], [TIME[2006-07-04T08:15:09.684Z]] <https://web.archive.org/web/20060704081406/http://members.ozemail.com.au/~geoffch/samples/cabfiles.htm>
]FIGCAPTION]

>Some users of web browsers from Netscape report that the cabinet files are corrupt. Investigation has shown that in the copy received on these users’ machines, each line-feed has been expanded to a carriage-return and line-feed pair. I do not use Netscape’s browsers and I cannot begin to think why they treat cabinet files as text rather than as binaries. If you encounter this problem and you are a Netscape user, then please direct your enquiries to Netscape, not to me. 

>Copyright © 1997-99. Geoff Chappell. All rights reserved. 
]FIG]


[40] >>39 当時の [[Netscape]] は[[改行]]を書き換えることがあったということですかね。

;; [41] 
今の[[Webブラウザー]]も[[テキストファイル]]として表示するときには書き換えしますし、
[[文字コード変換]]も発生しますが、[[ダウンロード]]なら変更されません。

[42] >>39 [[Internet Archive]] の [CODE[Content-Type:]] [[ヘッダー]]が当時サーバーが送っていたものと同じだとすると、
それは [CODE[text/plain]] なので、文句は [[Netscape]] に言え、
というのはお門違いなんですよね。。。

;; [43] でもこういう文句が多いせいでどの[[Webブラウザー]]も 
[CODE[text/plain]]
を [[sniffing][MIME sniffing]] する羽目になったんでしょうねえ...

* テキストと [CODE(MIME)@en[text/*]]

[21] [[テキストファイル]]も参照。

* [CODE[text/[VAR[*]]]] の適格性


[1] 新しい [CODE(MIME)[text/[VAR[*]]]] 媒体型を作ろうと考えている人へ: 
[CODE(MIME)[text/[VAR[*]]]] 媒体型の意味を''正しく理解''し、
本当に適切か考えましょう。多くの場合、
'''[CODE(MIME)[[[application/[VAR[*]]]]]] 媒体型とする方が適切'''です!

[2] [DFN[[CODE(MIME)[text/[VAR[*]]]] 媒体型]]は、 [[MIME]]
によると、 plain text 
的に表示した時に人間が特別な予備知識なく読むことができる形式に対する[[媒体型]]です。

しかし実際には、所謂 plain text, つまり[[バイナリ]]ではない、[[テキスト・エディタ]]で開くことが出来る形式全般に誤用されています。

[4] [CODE(MIME)[text/[VAR[*]]]] に対する扱いは [[MIME]] と [[HTTP]] 
で幾分差があるので注意が必要です。

[56]
>>2 とかなんとか信じられてきましたが、 [[Ned Freed]]
は [Q[[[RFC 2046]] の4.1章のアレは実装的にはこうだよねという話であって [CODE(MIME)[text/[VAR[*]]]] に対する要件ではない]]
なんて見解を示しています [SRC[Ned 2005]]。

- [Ned 2005] [CITE[Re: Request to review media type in AVT working group last call: draft-ietf-avt-rtp-3gpp-timed-text.txt]]
<mid:01LOV0PQ4QQS00004T@mauve.mrochek.com>

([[名無しさん]] [WEAK[2005-06-04 05:50:27 +00:00]])


[57]
>>56

確かに [[RFC 2046]] を読んでみるとその通りなわけです。

[[XML]] を [CODE(MIME)[[[text/[VAR[*]]]]]]
に登録できないとかのアレはなんだったわけよ?

[58] 
>>56, 57

本当か?<http://www.imc.org/ietf-xml-mime/mail-archive/msg00203.html>
を見よ。


[34] 
このよくわからない [[IETF]] の教条的方針のせいで、数多の混乱がもたらされました。

- [36] [[XML MIME型]]のうち [CODE[text/xml]] 等が非推奨とされた件
- [35] [[XHTML MIME型]]が [CODE[application/xhtml+xml]] になった件
- [37] [[JavaScript MIME型]]の混乱



[FIG(quote)[
[FIGCAPTION[
[20] [CITE@en[RFC 4708 - CellML Media Type]]
([TIME[2015-04-05 15:42:41 +09:00]] 版)
<https://tools.ietf.org/html/rfc4708>
]FIGCAPTION]

> The information in CellML Umbrella documents cannot be interpreted
>    without understanding the semantics of the XML elements used to mark
>    up the model structure.  Therefore, the application top-level type is
>    used instead of the text top-level type.

]FIG]

[FIG(quote)[
[FIGCAPTION[
[33] [CITE@en[RFC 5323 - Web Distributed Authoring and Versioning (WebDAV) SEARCH]]
([TIME[2017-10-01 13:49:21 +09:00]])
<https://tools.ietf.org/html/rfc5323#section-2.2.2>
]FIGCAPTION]

>    The server MUST process a text/xml or application/xml request body,
>    and MAY process request bodies in other formats.  See '''['''RFC3023''']''' for
>    guidance on packaging XML in requests.

]FIG]

[38] [CITE@en[[[RFC 9239]]: Updates to ECMAScript Media Types]], [[Matthew A. Miller]], [TIME[2022-11-22T08:20:12.000Z]] <https://www.rfc-editor.org/rfc/rfc9239#section-2>

>Note that this use of the "text" media type tree willfully does not align with its original intent per [RFC2045]. The reason for this is historical. [RFC4329] registered both the text/* and application/* types, marking the text/* types obsolete. This was done to encourage people toward application/*, matching the guidance in [RFC4288], the predecessor to [RFC6838]. Since then, however, the industry widely adopted text/* anyway.[SNIP[]]

[CODE[text/javascript]] も参照。

* 処理

[28] 処理方法は、[[部分型]]により異なります。

[29] 未知の[[部分型]]は、 [CODE(MIME)@en[[[charset]]]] を理解できるなら
[CODE(MIME)@en[[[text/plain]]]]、理解できないなら [CODE(MIME)@en[[[application/octet-stream]]]]
として扱うべきです [SRC[>>24]]。

;; [30] この規定は一部の [[MUA]] しか従っていないようです。一部の [[MUA]]
は未知のものをすべて [CODE(MIME)@en[[[application/octet-stream]]]] のように扱うようです。
また [[Web]] では [CODE(MIME)@en[[[text/plain]]]] として扱われるものとそうでないものがあります
([[テキストファイル]]参照)。

;; [31] この規定の通りに実装されていたなら、 [CODE(MIME)@en[[[text/plain; format=flowed]]]]
は[[引数]]ではなく新しい [[MIME型]]になっていたはずです。

* 歴史

[FIG(quote)[
[FIGCAPTION[
[61] RFC 2046 4.1.  Text Media Type
]FIGCAPTION]

> The "text" media type is intended for sending material which is
principally textual in form.  A "charset" parameter may be used to
indicate the character set of the body text for "text" subtypes,
notably including the subtype "text/plain", which is a generic
subtype for plain text.  Plain text does not provide for or allow
formatting commands, font attribute specifications, processing
instructions, interpretation directives, or content markup.  Plain
text is seen simply as a linear sequence of characters, possibly
interrupted by line breaks or page breaks.  Plain text may allow the
stacking of several characters in the same position in the text.
Plain text in scripts like Arabic and Hebrew may also include
facilitites that allow the arbitrary mixing of text segments with
opposite writing directions.

"text" 媒体型は基本的に文字であるものを送るのに使います。
"charset" パラメーターを各 "text" 亜型 (とりわけ平文の総称亜型である
"text/plain" を含む) の本文の文字集合を示すのに
使うことが出来ます。平文は書式付け命令, 書体属性指定, 処理命令,
解釈指令, 内容マーク付けなどの手法を提供しませんし認めません。
平文は単純に文字の一次列に見えます。文字はもしかすると改行や改頁と
解釈されるかもしれません。平文は幾つかの文字を文中の同じ位置に
重ね打ちすることが出来ます。アラビアやヘブライのような用字系は
逆書字方向の文断片の任意の混合を認める機能も含むかもしれません。

[PRE[
   Beyond plain text, there are many formats for representing what might
   be known as "rich text".  An interesting characteristic of many such
   representations is that they are to some extent readable even without
   the software that interprets them.  It is useful, then, to
   distinguish them, at the highest level, from such unreadable data as
   images, audio, or text represented in an unreadable form. In the
   absence of appropriate interpretation software, it is reasonable to
   show subtypes of "text" to the user, while it is not reasonable to do
   so with most nontextual data. Such formatted textual data should be
   represented using subtypes of "text".
]PRE]

>
平文のほかに、「裕福文」として知られているような多くの表現方法
があります。多くのこのような表現の興味深い特徴は、これを解釈する
ソフトウェア無しでもある程度可読であるということです。これを
画像や音声や非可読形式で表される文と最上位で区別するのは有用なことです。
適切な解釈ソフトウェアが無い場合、 "text" の亜型を利用者に示すのは、
ほとんどの非文データをそうするのとは違って道理にかなっています。
このような書式付けされた文字データは "text" の亜型を使って表現するべきです。

* 4.1.1.  Representation of Line Breaks [INS[改行の表現]]

> The canonical form of any MIME "text" subtype MUST always represent a
line break as a CRLF sequence.  Similarly, any occurrence of CRLF in
MIME "text" MUST represent a line break.  Use of CR and LF outside of
line break sequences is also forbidden.

[[MIME]] "text" 亜型の正規形は常に改行を [[CRLF]]
列で表さなければ'''なりません'''。同様に、 MIME "text" 中の
CRLF は改行を表さなければ'''なりません'''。
CR と LF を改行シーケンス以外で使用することも禁止します。

> This rule applies regardless of format or character set or sets involved.

この規則はどんな形式や文字集合であっても適用されます。

> '''NOTE''': The proper interpretation of line breaks when a body is
displayed depends on the media type. In particular, while it is
appropriate to treat a line break as a transition to a new line when
displaying a "text/plain" body, this treatment is actually incorrect
for other subtypes of "text" like "text/enriched" [RFC-1896].
Similarly, whether or not line breaks should be added during display
operations is also a function of the media type. It should not be
necessary to add any line breaks to display "text/plain" correctly,
whereas proper display of "text/enriched" requires the appropriate
addition of line breaks.

'''参考''': 本体が表示される時の改行の適切な解釈は媒体型によります。
特に、 "text/plain"
本体を表示する時に改行を新しい行へ移るものとして扱うのは適切ですが、
"text/enriched" [RFC-1896] のような "text"
の他の亜型には実際この扱いは間違いです。
同様に、改行が表示操作により追加されるべきかどうかも媒体型の機能によります。
"text/plain" を正しく表示するのに改行を追加する必要があるのは望ましくありませんが、
"text/enriched" の適切な表示には適切に改行を追加する必要があります。

> '''NOTE''': Some protocols defines a maximum line length.  E.g.
SMTP [RFC-821] allows a maximum of 998 octets before the next CRLF sequence.
To be transported by such protocols, data which includes too long
segments without CRLF sequences must be encoded with a suitable
content-transfer-encoding.

'''参考''': 幾つかの[[プロトコル]]は最大行長を決めています。
例えば [[SMTP]] は最大で998オクテットがそれに続く CRLF
シーケンスの前にあることを認めています。このようなプロトコルで転送するには、
CRLF シーケンスなしの長過ぎる部分を含むデータは適切な内容転送符号化で符号化しなければなりません。

* 4.1.2.  Charset Parameter [INS[Charset パラメーター]]

See [[charsetパラメーター]]

* 4.1.3.  Plain Subtype [INS[Plain 亜型]]

>
[PRE[
   The simplest and most important subtype of "text" is "plain".  This
   indicates plain text that does not contain any formatting commands or
   directives. Plain text is intended to be displayed "as-is", that is,
   no interpretation of embedded formatting commands, font attribute

   specifications, processing instructions, interpretation directives,
   or content markup should be necessary for proper display.  The
   default media type of "text/plain; charset=us-ascii" for Internet
   mail describes existing Internet practice.  That is, it is the type
   of body defined by RFC 822.
]PRE]

>No other "text" subtype is defined by this document.

>他の "text" 亜型はこの文書では定義しません。

* 4.1.4.  Unrecognized Subtypes

>
Unrecognized subtypes of "text" should be treated as subtype "plain"
as long as the MIME implementation knows how to handle the charset.
Unrecognized subtypes which also specify an unrecognized charset
should be treated as "application/octet-stream".

>認識出来ない "text" の亜型は、 MIME 実装者が charset をどう扱うか
知っているなら亜型 "plain" として扱います。認識出来ない charset 
も指定された認識出来ない亜型は "application/octet-stream" として扱います。
]FIG]


[FIG[
[FIGCAPTION[
[86] RFC 1945 (HTTP/1.0) 3.6.1; RFC 2068・2616 (HTTP/1.1) 3.7.1 Canonicalization and Text Defaults
]FIGCAPTION]

> Internet media types are registered with a canonical form. [DEL[[INS[{1945,2068}]] In general, an]] [INS[[INS[{2616}]] An]] [DEL[Entity-Body]] [INS[entity-body]] transferred via HTTP [INS[messages]] [DEL[must]] [INS[MUST]]
be represented in the appropriate canonical form prior to its transmission [INS[[DEL[; the exception is]] [INS[except for]] "text" types, as defined in the next paragraph]].

Internet 媒体型は正規形とともに登録されます。
[[HTTP]] [[メッセージ]]で転送される実体本文は、次の段落で定義する
"text" 型を除いては、転送の前に適切な正規形で表現し'''なければなりません'''。

> [INS[When in canonical form, media]] [DEL[Media]] subtypes of the "text" type use CRLF as
the text line break [DEL[when in canonical form]]. HTTP [INS[relaxes this requirement and]] allows the
transport of text media with plain CR or LF alone representing a line
break when [DEL[used]] [INS[it is done]] consistently [DEL[within the Entity-Body]] [INS[for an entire entity-body]]. HTTP
applications [DEL[must]] [INS[MUST]] accept CRLF, bare CR, and bare LF as being
representative of a line break in text media received via HTTP. In
addition, if the text [DEL[media]] is represented in a character set that does not
use octets 13 and 10 for CR and LF respectively, as is the case for
some multi-byte character sets, HTTP allows the use of whatever octet
sequences are defined by that character set to represent the
equivalent of CR and LF for line breaks. This flexibility regarding
line breaks applies only to text media in the [DEL[Entity-Body]] [INS[entity-body]]; a bare CR
or LF [DEL[should not]] [INS[MUST NOT]] be substituted for CRLF within any of the HTTP control
structures (such as header fields and multipart boundaries).

正規形では、 "text" 型の媒体亜型は CRLF を文改行に使います。 HTTP
はこの要件を緩和し、文媒体を生の CR や LF だけを改行の表現に使って
転送することを、実体本文全体で一貫している場合は認めます。
HTTP 応用は CRLF, 単独 CR, 単独 LF を HTTP で受け取った文媒体の改行の表現
であるとして認めなければ'''なりません'''。加えて、文がオクテット 13 および
10 をそれぞれ CR と LF に使わない、幾つかの多バイト文字集合の場合のような
文字集合で表現されている場合は、 HTTP haその文字集合で定義されている CR や
LF と同等のオクテット列を使うことを認めます。この柔軟性は、
実体本文中の文媒体にのみ適応されます。単独の CR や LF は HTTP
制御構造 (頭領域や多部分区切りなど) の中では CRLF の代わりに使っては
'''いけません'''。

> If [DEL[the body has been]] [INS[an entity-body is]] encoded with a [DEL[[INS[{1945,2068}]] Content-Encoding]] [INS[[INS[{2616}]] content-coding]], the underlying data [DEL[should]] [INS[MUST]]
be in [DEL[canonical form]] [INS[a form defined above]] prior to being encoded.

実体本文が内容符号化で符号化されている時は、中のデータは
符号化の前に上に定義した形にして'''おかなければなりません'''。

> The "charset" parameter is used with some media types to define the
character set ([DEL[Section]] [INS[section]] 3.4) of the data. When no explicit charset
parameter is provided by the sender, media subtypes of the "text"
type are defined to have a default charset value of "ISO-8859-1" when
received via HTTP. Data in character sets other than "ISO-8859-1" or
its subsets [DEL[must]] [INS[MUST]] be label[DEL[l]]ed with an appropriate charset value [DEL[in order to be consistently interpreted by the recipient]]. [INS[[INS[{2616}]] See section 3.4.1 for compatibility problems.]]

"charset" パラメーターを幾つかの媒体型でデータの文字集合を定義するのに
使います。 HTTP で受信した時に、送信者により明示された charset 
パラメーターが無い場合は、
"text" の媒体亜型は既定の charset 値 "ISO-8859-1" を持つものと定義します。
"ISO-8859-1" かその部分集合でない文字集合のデータは適切な charset
値で札付けし'''なければなりません'''。互換性問題については3.4.1節を
参照して下さい。

[DEL[

[DEL[

> [INS[{1945}]] Note: Many current HTTP servers provide data using charsets other
than "ISO-8859-1" without proper labelling. This situation reduces
interoperability and is not recommended. To compensate for this,
some HTTP user agents provide a configuration option to allow the
user to change the default interpretation of the media type
character set when no charset parameter is given.

注意 : 多くの現在の HTTP サーバーは、適切に札付けせずに
[CODE(charset)[[[ISO-8859-1]]]] 以外の charset
を使ってデータを提供しています。この状況は相互運用性を低下させるので、
推奨しません。これを補正するために、 HTTP 利用者エージェントの中には設定選択肢を用意して、
[CODE(HTTP)[charset]] 引数が与えられていない時に利用者が媒体型文字集合の既定の解釈を変更することを可能としているものもあります。
]DEL]

[INS[

> [INS[{2068}]] Some HTTP/1.0 software has interpreted a Content-Type header without
charset parameter incorrectly to mean "recipient should guess."
Senders wishing to defeat this behavior MAY include a charset
parameter even when the charset is ISO-8859-1 and SHOULD do so when
it is known that it will not confuse the recipient.

> Unfortunately, some older HTTP/1.0 clients did not deal properly with
an explicit charset parameter. HTTP/1.1 recipients MUST respect the
charset label provided by the sender; and those user agents that have
a provision to "guess" a charset MUST use the charset from the
content-type field if they support that charset, rather than the
recipient's preference, when initially displaying a document.

[INS[

注 : RFC 2616 ではこの部分は 3.6.1 節に移動しています。
[CODE(WikiPage)[[[charset//HTTP]]]] を参照。
]INS]
]INS]
]DEL]
]FIG]

[FIG[
[FIGCAPTION[
[87] RFC 1945 (HTTP/1.0) C.1; RFC 2068 (HTTP/1.1) 19.4.1; RFC 2616 (HTTP/1.1) 19.4.2 Conversion to Canonical Form
]FIGCAPTION]

> [DEL[[DEL[RFC 1521]] [INS[MIME]]]] [INS[RFC 2045 [7] ]] requires that an Internet mail entity be converted to
canonical form prior to being transferred[DEL[, [INS[{1945}]] as described in Appendix G of RFC 1521 [5] ]][INS[, [INS[{2616}]] as described in section 4 of RFC 2049 [48] ]]. Section [DEL[[INS[{1945}]] 3.6.1]] [INS[3.7.1]]
of this document describes the forms allowed for subtypes of the "text" media
type when transmitted over HTTP. [INS[[DEL[MIME]] [INS[RFC 2046]] requires that content with a type of "text" represent line breaks as CRLF and forbids the use of CR or LF outside of line break sequences.  HTTP allows CRLF, bare CR, and bare LF to indicate a line break within text content when a message is transmitted over HTTP.]]

[7] RFC 2045 では、 Internet メイルの実体は転送される前に
RFC 2049 の第4章で説明された通り正規形に変換する必要があります。
この文書の3.7.1節は "text" 媒体型の亜型を HTTP 
上で転送する時に認められる形式について説明しています。 RFC 2046 
は "text" の型の内容は [[CRLF]] 
で[[改行]]を表現することを要求し、改行シーケンス以外で [[CR]] 
や [[LF]] を使うことを禁止しています。 HTTP は、 HTTP 
上でメッセージを転送する際に文中で CRLF, 単独の CR, 単独の LF 
を改行を示すのに使うことを認めています。

[DEL[

> RFC 1521 requires that content with a Content-Type of "text"
represent line breaks as CRLF and forbids the use of CR or LF outside
of line break sequences. HTTP allows CRLF, bare CR, and bare LF to
indicate a line break within text content when a message is
transmitted over HTTP.

RFC 1521 は、 [CODE(MIME)[[[Content-Type]]]] が [CODE(MIME)[text]]
の内容が[[改行]]を [CODE(char)[[[CRLF]]]] で表現することを要求し、
改行列以外での [CODE(char)[[[CR]]]] と [CODE(char)[[[LF]]]]
の使用を禁止しています。 HTTP は、メッセージが HTTP
上を転送されるに際して文内容中の改行を示すために
[CODE(char)[CRLF]], 単独の [CODE(char)[CR]] および単独の [CODE(char)[LF]]
を認めています。
]DEL]

> Where it is possible, a proxy or gateway from HTTP to a strict [DEL[RFC 1521]] [INS[MIME]]
environment [DEL[should]] [INS[SHOULD]] translate all line breaks within the text media
types described in [DEL[Section 3.6.1]] [INS[section 3.7.1]] of this document to the [DEL[[DEL[RFC 1521]] [INS[MIME]]]] [INS[RFC 2049]]
canonical form of CRLF. Note, however, that this [DEL[may]] [INS[[INS[{2616}]] might]] be complicated
by the presence of a Content-Encoding and by the fact that HTTP
allows the use of some character sets which do not use octets 13 and
10 to represent CR and LF, as is the case for some multi-byte
character sets.

[8] 可能であれば、 HTTP から厳密な MIME 
環境への串や関門はこの文書の3.7.1節で説明した文媒体型中の全ての改行を
RFC 2049 正規形の CRLF に変換する'''のが良いです'''。しかし、 
Content-Encoding の出現や, HTTP 
が幾つかの多バイト[[文字集合]]の場合のように[[オクテット]] 
[CODE[13]] と [CODE[10]] を CR や LF 
を表現するのに使わない文字集合の使用を認めているという事実が、これを複雑にしていようことに注意して下さい。

[INS[

> [INS[{2616}]] Implementors should note that conversion will break any cryptographic
checksums applied to the original content unless the original content
is already in canonical form. Therefore, the canonical form is
recommended for any content that uses such checksums in HTTP.

[9] 実装者は、元の内容が既に正規形で無かった時に、元の内容に適応される暗号検査和が壊れようことに注意するのが良いです。
このため、 HTTP で検査和を使う内容では正規形が推奨されます。
]INS]

[INS[

注意: 注記のない修正点は RFC 1945 → RFC 2068 もの。
]INS]
]FIG]

* メモ

[REFS[
- [5] [IANAREG] ''IANA | Text Media-Types'' <http://www.iana.org/assignments/media-types/text/>
Page updated 11-May-2006  
- [54] [WING] Wing IDE Lite Reference Manual 4.3.1 Supported file types 
<http://wingide.com/psupport/wingide-lite-1.1/node5.html#SECTION00531000000000000000>
]REFS]


[3] 信じられないことに [[HTML]] 文書を [CODE(MIME)[text/plain]] で送ってくる 
[[HTTP]] サーバーが未だに存在しているんですが。 ([[WinIE]] は 
[CODE(MIME)[text/plain]] でも勝手に [[HTML]] 表示してしまうから、
気づいてないんだろうなあ。)

[60] [CITE[W3C TPAC: decoding text/css — Anne’s Blog]]
( ([TIME[2012-11-23 13:30:36 +09:00]] 版))
<http://annevankesteren.nl/2012/11/decoding-css>

