解决 Node.js 控制台输出乱码问题
warning:
这篇文章距离上次修改已过190天,其中的内容可能已经有所变动。
乱码问题通常发生在Windows系统中,因为Windows系统使用的是GBK或CP936编码,而Node.js默认输出使用的是系统的编码。若是在Windows命令行中运行Node.js程序且程序输出包含非ASCII字符,可能会出现乱码。
解决方法:
更改控制台编码:
打开命令提示符(cmd)或PowerShell,然后执行以下命令来更改编码为UTF-8:
chcp 65001
使用第三方模块:
安装并使用
iconv-lite
模块,它可以在流中转换编码。npm install iconv-lite
在Node.js代码中:
const iconv = require('iconv-lite'); process.stdout.write = (string) => { process.stdout.write(iconv.encode(string, 'win1252')); };
更改系统区域设置:
在控制面板中更改区域设置为使用UTF-8编码的语言,但这可能会影响其他程序的输出。
使用Windows Terminal:
如果你使用的是Windows 10或更新的版本,可以使用Windows Terminal,它支持UTF-8编码。
更改Node.js源码:
修改Node.js的源代码,使其默认使用UTF-8编码输出,这种方法复杂且风险较高,不推荐。
选择解决方案时,请考虑你的具体需求和环境。如果更改控制台编码足以满足需求,那么这是最简单的解决方案。
评论已关闭