数据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
似乎不是......
答案 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
,以确保跨浏览器可靠地解释它们。