You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Babel编译输出UTF-16编码文件,如何设置使其输出UTF-8编码文件?

Babel执行JSX转码后输出UTF-16文件的解决方法

你遇到的编码异常绝大多数情况不是Babel本身导致的,问题出在系统终端的重定向逻辑:Babel默认输出的字节流是UTF-8编码,但Windows系统下的PowerShell/CMD默认重定向(> 符号)的输出编码为UTF-16,会把Babel输出的UTF-8流转码为UTF-16存到文件里。

方案1(最推荐):使用Babel自带的输出参数

不用系统重定向符号,改用Babel官方提供的--out-file(缩写-o)参数指定输出文件,由Babel直接写入文件,绕过系统重定向的编码转换逻辑,默认输出就是UTF-8编码:

babel --plugins transform-react-jsx like_button.jsx --out-file like_button.js

方案2:修改终端默认编码后使用重定向

如果必须用重定向写法,可以先修改当前终端的输出编码为UTF-8,再执行转码命令:

  • PowerShell环境先执行:
    $OutputEncoding = [System.Text.UTF8Encoding]::new()
  • CMD环境先执行:
    chcp 65001

修改编码后再运行原来的重定向命令即可得到UTF-8编码的输出文件。

验证方法

Linux/macOS环境可以用以下命令验证文件编码:
file -I like_button.js
输出结果中charset=utf-8就代表编码设置生效。


内容的提问来源于stack exchange,提问作者Rai

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.30 07:15:03