验证码: 看不清楚,换一张 查询 注册会员,免验证
  • {{ basic.site_slogan }}
  • 打开微信扫一扫,
    您还可以在这里找到我们哟

    关注我们

日志乱码怎么解决

阅读:659 来源:乙速云 作者:代码code

日志乱码怎么解决

日志乱码通常是因为字符编码不一致导致的。下面按常见场景给你排查和解决方法:


一、先判断乱码类型

  • 中文变成 ????? → 多半是 ISO-8859-1 / ASCII
  • 中文变成 等等 → 多半是 UTF-8 被当成 GBK
  • 方块、问号、乱符号 → 编码或字体问题

二、常见场景与解决方案

✅ 1. Java / Spring Boot 日志乱码(最常见)

原因

  • 控制台编码 ≠ 文件编码
  • logback / log4j 没指定编码

解决方案

logback.xml

<encoder>
    <pattern>%d{yyyy-MM-dd HH:mm:ss} %-5level %logger - %msg%npattern>
    <charset>UTF-8charset>
encoder>

启动参数(Windows 特别重要)

-Dfile.encoding=UTF-8

✅ 2. Windows 控制台 / CMD 乱码

临时解决

chcp 65001

永久解决

  • 修改注册表(不推荐新手)
  • 或改用 Windows Terminal / PowerShell

✅ 3. Linux / Docker 日志乱码

检查系统编码

locale

设置 UTF-8

export LANG=en_US.UTF-8
export LC_ALL=en_US.UTF-8

Docker 容器

docker run -e LANG=C.UTF-8 -e LC_ALL=C.UTF-8 ...

✅ 4. 日志文件本身是乱码

用正确编码打开:

  • Notepad++:编码 → UTF-8 / GBK
  • VS Code:右下角切换编码

如果文件是 GBK,程序却按 UTF-8 读 → 必乱码


✅ 5. 数据库日志 / 接口返回乱码

JDBC

useUnicode=true
characterEncoding=UTF-8

HTTP 接口

Content-Type: application/json; charset=UTF-8

三、通用排查顺序(强烈推荐)

  1. 确认日志文件真实编码
  2. 确认程序输出编码
  3. 确认终端 / 查看工具编码
  4. 统一为 UTF-8

四、一句话总结

80% 的日志乱码,都是因为没统一使用 UTF-8。


如果你愿意,可以告诉我:

  • 用什么语言(Java / Python / Go / C++)
  • 日志框架(logback / log4j / logging)
  • 运行环境(Windows / Linux / Docker / K8s)

我可以直接给你针对你环境的精确配置

分享到:
*特别声明:以上内容来自于网络收集,著作权属原作者所有,如有侵权,请联系我们: hlamps#outlook.com (#换成@)。
下一篇: Logger 能记录什么
相关文章
{{ v.title }}
{{ v.description||(cleanHtml(v.content)).substr(0,100)+'···' }}
你可能感兴趣
推荐阅读 更多>