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

Node.js中使用fs.readFile设置utf8仍乱码,求助解决方法

Node.js fs.readFile读取login.html乱码问题排查与解决
  • 先检查login.html文件本身的编码:你设置了utf8读取,但如果文件实际是GBK/GB2312这类编码保存的,读出来必然乱码。用VS Code、Notepad++这类编辑器打开文件,查看状态栏的编码标识,直接改成UTF-8重新保存。

  • 确认readFile的编码参数是否正确:确保代码里是fs.readFile('./login.html', 'utf8', (err, data) => { ... }),或者用配置对象{ encoding: 'utf8' },别写错成其他格式(虽然Node.js兼容utf-8,但统一写法更稳妥)。

  • 检查响应头的Content-Type设置:就算读取到了正确内容,返回给客户端时没指定字符集,浏览器可能用默认编码解析导致乱码。一定要加上:

res.writeHead(200, {
  'Content-Type': 'text/html; charset=utf-8'
});
res.end(data);
  • 排查BOM头问题:部分编辑器保存UTF-8时会自动加上BOM头,Node.js读取时可能出现异常。用VS Code选择"UTF-8 without BOM"格式重新保存login.html试试。

  • 用同步读取排除异步干扰:临时换成fs.readFileSync('./login.html', 'utf8')读取并打印内容,如果还是乱码,说明问题出在文件本身或编码设置,和异步逻辑无关。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.26 00:39:58