鄂缮输 发表于 2026-2-13 05:23:10

Windows 下 Node.js 重定向输出导致中文乱码的问题分析

根本原因分析仅供参考,都是AI分析的

一、问题描述

在 Windows 环境下执行以下命令时,发现 中文输出出现乱码:
node client.js --code b16fcb6181383533844e5572ca9b56a8 > output.log 2>&1但如果只重定向标准输出(stdout),则 不会出现乱码:
node client.js --code b16fcb6181383533844e5572ca9b56a8 > output.log二、现象对比

命令结果> output.log中文正常> output.log 2>&1中文乱码三、根本原因分析

1. stdout 与 stderr 的编码来源不同

在 Windows 下,Node.js 的两个输出流行为不同:
输出流编码来源stdout(标准输出)Node.js 内部控制,默认 UTF-8stderr(标准错误)直接使用 Windows 控制台代码页(通常是 GBK / CP936)2. 2>&1 做了什么?

2>&1表示:
将 stderr 重定向到 stdout
执行流程实际是:
stdout → output.log   (UTF-8)
stderr → stdout → output.log (GBK)

来源:程序园用户自行投稿发布,如果侵权,请联系站长删除
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!

禄磊 发表于 2026-2-25 06:30:59

分享、互助 让互联网精神温暖你我

钤凑讪 发表于 2026-2-25 11:29:18

感谢分享

笙芝 发表于 2026-2-25 11:41:54

前排留名,哈哈哈

盒礁泅 发表于 2026-2-26 13:01:42

很好很强大我过来先占个楼 待编辑

荡俊屯 发表于 2026-3-1 01:04:03

yyds。多谢分享

时思美 发表于 2026-3-5 10:17:24

很好很强大我过来先占个楼 待编辑

县挫伪 发表于 2026-3-7 10:52:32

这个有用。

辅箱肇 发表于 2026-3-11 09:20:40

感谢分享,学习下。

碣滥 发表于 2026-3-11 09:52:16

新版吗?好像是停更了吧。
页: [1]
查看完整版本: Windows 下 Node.js 重定向输出导致中文乱码的问题分析