Parcel 2 RC中ES module类型脚本如何指定utf-8编码以支持特殊字符?
ES模块脚本UTF-8编码配置方案
ES模块规范默认要求所有模块文件以UTF-8编码解析,type="module"的script标签本身不支持通过charset属性指定编码,出现特殊字符乱码可以按以下三个维度排查调整即可:
- 确保模块源文件本身以UTF-8编码保存:打开对应的
app.js文件,在编辑器的编码设置里确认存储格式为UTF-8,不要使用GBK、GB2312等非UTF-8编码存储文件。 - 配置HTTP服务的响应头:如果你的项目是通过HTTP服务访问(包括Parcel 2内置的开发服务),需要保证服务端返回JS文件时的响应头携带正确的编码声明:
针对Parcel 2的场景,可以在项目根目录新建Content-Type: application/javascript; charset=utf-8.proxyrc.js配置文件,添加以下内容实现响应头注入:module.exports = function (app) { app.use((req, res, next) => { if (req.path.endsWith('.js')) { res.setHeader('Content-Type', 'application/javascript; charset=utf-8') } next() }) } - 确认HTML文件的基础编码配置:如果是本地直接打开HTML文件访问,只要保证HTML文件本身是UTF-8编码,且头部已经添加了
<meta charset="UTF-8">声明,对应的ES模块也会默认以UTF-8解析。
你当前使用的<script type="module" src="app.js"></script>写法本身符合规范,不需要额外添加其他属性,调整以上配置即可正常使用特殊字符。
内容的提问来源于stack exchange,提问作者Mateo Lara
相关产品推荐
相关产品推荐

