数据URI默认字符集

时间:2016-07-13 16:52:18

标签: character-encoding uri source-maps data-uri data-uri-scheme

数据URI是否有默认字符集?我看过the spec,但我没有看到。

例如,如果我有源地图的数据URI,我期望在浏览器中可靠地解释,是否可以省略字符集?

//@ sourceMappingURL=data:application/json;base64,eyJ2ZXJza...

VS

//@ sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJza...

我在this GitHub issue中看到,人们在源映射文件中使用中文字符时遇到问题而没有明确的charset=utf-8。因此,如果存在默认值(或者,至少,如果我们可以期望浏览器选择一个),那么utf-8似乎不是......

1 个答案:

答案 0 :(得分:0)

根据RFC 2397 § 2没有指定charset的数据URI默认为US-ASCII 。因为every Base64-encoded URI uses only ASCII characters。此外,“所有US‑ASCII字符串均变为有效的UTF‑8”,这意味着“在许多情况下具有良好的向后兼容性”。 1

尽管如此,UTF-8的实施在2019年仍然不平衡。因此-并且因为对已经对用户不友好的数据URI显式调用charset几乎没有花费,因此<在您的源映射URI中将strong>强加charset=utf-8 ,以确保跨浏览器可靠地解释它们。


  1. Arjun Chaudhary对Is there a drastic difference between UTF-8 and UTF-16的回答。