降价的 MIME 类型是什么?

有人知道是否存在用于 Markdown 的 MIME 类型吗?我猜是 text/plain,但有没有更具体的?

41272 次浏览

找到了2008年的线索: http://www.mail-archive.com/markdown-discuss@six.pairlist.net/msg00973.html

似乎默剧类型 text/vnd.daringfireball.markdown应该由 Markdown 的作者注册,直到那时,Markdown 默剧类型可以指定为 text/x-markdown

没有 正式的标准类型,但 text/markdown似乎是最常见的 事实上类型。大多数浏览器和其他相当复杂的客户端可能会看到 text/部分,并默认为 text/plain,所以没有太大的区别。

但需要注意的是: 在相关 RFC 标准中,text/层次结构下的所有类型的字符类型都默认为 ISO-8859-1。从那以后,世界上大多数国家都转向了 UTF-8。因此,除非你确定你不会使用任何有趣的字符(或者生活在一个旧的 Windows 世界里) ,否则你可能需要指定如下:

text/markdown; charset=UTF-8

Tl; dr: text/markdown自2016年3月以来

2016年3月,text/markdown注册为 在 IETF 的 RFC7763

以前应该是 text/x-markdown。下文描述了2016年3月之前的情况,当时 RFC7763还只是一个草案。


目前还没有关于 Gruber 的定义的正式推荐,但是这个话题在 官方邮件列表上进行了相当多的讨论,并且达到了 text/x-markdown的选择。

这个结论是 后来受到质疑,已经得到证实,可以被认为是国际海事组织的共识。

这是唯一合乎逻辑的结论,在缺乏一个正式的哑剧类型: text/将提供适当的默认几乎所有地方,x-,因为我们没有使用一个正式的类型,markdown,而不是 gruber.或其他,因为该类型现在是如此普遍。

尽管如此,仍然有关于不同“风味”的降价 未知数。我想有人应该注册一个官方类型,这应该是 放松,但我怀疑没有人敢这样做以外的约翰格鲁伯,因为他最近 证明了他的附件 Markdown。

IETF 上有一个 草稿,但是它的内容似乎根本没有描述 Markdown,所以我不会使用它,直到它变得更加完整。

根据2016年的 RFC7763“文本/减价类型”,一般的 MIME 类型是

text/markdown; charset=UTF-8

其中需要 charset参数但不一定是 UTF-8

该 RFC 还指定一个可选的 variant参数和 Internet 分配数字管理局维护 Markdown 的注册表 变种 指定特定的降价方式,例如:

text/markdown; charset=UTF-8; variant=Original
text/markdown; charset=UTF-8; variant=GFM
text/markdown; charset=UTF-8; variant=CommonMark

中指定的某些变体允许进一步的参数 RFC7764《减价指引》 例如,你可以添加 extensions=-startnumpandoc变体来指定方言的调整, 尽管我不知道潘多克会怎么解释。

为什么需要字符集?

RFC2046《 MIME 第二部分》(1996) 将 US-ASCII 设置为默认字符集,但还说

任何未来的“文本”子类型的规范必须指定 他们是否也将利用“字符集”参数,并可能 也可能限制它的价值。

然后是1999年的 RFC2616“ HTTP/1.1” 指定 ISO-8859-1作为传输过来的 text/*的默认字符集 HTTP,随着网络成为主要的通信方式, 这成为了 text/*媒体类型的默认编码。

如果没有显式的字符集或注册的特定于 mime 类型的默认值,则 text/*被认为是 US-ASCII,除非该文本是通过 HTTP 传输的 认为是 ISO-8859-1。

RFC 6657“关于“ charset”参数处理的 MIME 更新 文本媒体类型” 试图澄清这个差异 要求所有新媒体类型的注册 明确指定如何 来确定字符集, 最好在 HTML 允许的情况下将其包含在有效负载中 <meta charset=UTF-8>.

翻译: 奇芳翻译: 奇芳翻译: 奇芳翻译: 奇芳翻译: 奇芳翻译: 奇芳翻译: 奇芳翻译: 奇芳翻译: 奇芳翻译: 奇芳翻译: 奇芳 登记 将 charset参数指定为“必需” text/markdown在技术上是无效的,并且此类内容的字符集可能 合法地被解释为任何未定义的、无效的 US-ASCII, ISO-8859-1,或 UTF-8,在实践中几乎总是如此。