温馨提示×

js日志乱码怎么处理

小樊
34
2026-09-05 16:12:12
栏目: 编程语言

JavaScript 日志乱码通常不是 JS 本身的问题,而是字符编码不一致导致的。下面按常见场景给你处理方案:


一、前端控制台(console.log)乱码

1. 文件编码不是 UTF-8

确保 JS 文件是 UTF-8 无 BOM

  • VS Code:右下角 → 选择 UTF-8
  • 保存时选择「以 UTF-8 编码保存」

2. HTML 未声明编码

<meta charset="UTF-8">

二、Node.js 终端日志乱码

1. 终端编码问题(Windows 常见)

// 强制使用 UTF-8
process.env.LANG = 'en_US.UTF-8'

Windows CMD:

chcp 65001

2. 输出中文乱码

console.log(Buffer.from('中文').toString('utf8'))

或写日志文件时指定编码:

fs.writeFileSync('log.txt', '中文日志', 'utf8')

三、接口 / 日志文件乱码

1. 接口返回乱码

确保:

  • 后端 Content-Type: application/json; charset=utf-8
  • 前端 responseType 正确
  • 文件读写统一 UTF-8

2. 日志框架乱码(winston / pino)

const winston = require('winston')
const logger = winston.createLogger({
  transports: [
    new winston.transports.File({
      filename: 'app.log',
      encoding: 'utf8'
    })
  ]
})

四、快速自查清单 ✅

  • [ ] JS / HTML 是否 UTF-8
  • [ ] 终端是否 UTF-8
  • [ ] 接口 charset 是否正确
  • [ ] 文件读写是否指定编码
  • [ ] 是否有 Buffer 错误转换

如果你能贴一下:

  • 前端 / Node / 日志文件
  • 乱码示例
  • 运行环境(Windows / Linux / Mac)

我可以给你更精确的办法。

0