如果在 Content-Type 标头中未指定字符集参数,则RFC2616 第 3.7.1 节似乎暗示 ISO8859-1 应假定用于子类型“text”的媒体类型:
当发送者没有提供明确的字符集参数时,“文本”类型的媒体子类型被定义为在通过 HTTP 接收时具有“ISO-8859-1”的默认字符集值。
除“ISO-8859-1”或其子集以外的字符集中的数据必须用适当的字符集值标记。
但是,我经常看到应用程序提供带有 Content-Type 值的 Javascript 文件,例如“application/x-javascript”(即没有字符集参数),即使这些脚本包含非 ASCII UTF-8 字符,如果解释这些字符会损坏为 ISO8859-1。
这似乎不会给客户带来问题。客户端如何知道将字节解释为 UTF-8?是否有其他字符数据子类型的规则暗示 UTF-8 应该是默认值?这是在哪里记录的?