当前位置: 首页 > news >正文

日志乱码<0x1b>[0;39m]中文乱码<DE><EA><DA>

一、场景一

现象

spring项目产生的日志中包含乱码字符,如下:

<0x1b>[0;39m]
[ESC[32m

  • tail -f 查看,能正常显示;

  • less 查看,提示 "nohup.2025-04-03.out" may be a binary file. See it anyway? 继续查看,显示出上方乱码

  • 下载下来查看,显示上方乱码

原因

spring默认配置
spring.output.ansi.enabled 用于控制 Spring Boot 日志或控制台输出是否启用 ANSI 颜色编码。
NEVER:禁用 ANSI 颜色(无论终端是否支持)。
ALWAYS:强制使用 ANSI 颜色(即使终端不支持)。
DETECT(默认值):自动检测终端是否支持 ANSI 颜色,并相应启用或禁用颜色。
在支持 ANSI 颜色的终端(如 cmd、PowerShell、Bash、Zsh)运行 Spring Boot 项目时,日志会自动显示彩色输出,提高可读性。

如果终端不支持颜色,则会自动禁用,以防乱码或显示异常字符。

方案一

less -R xxx.log

方案二

改spring配置
spring.output.ansi.enabled=never

二、场景二

现象

使用less -R xxx.log 查看时,日志中的中文是乱码的,如<DE><EA><DA>;但下载下来查看时,中文不乱码,仅仅有
<0x1b>[0;39m]

原因

echo $LANG 看下结果是否为 如下结果,不是的话,部署服务器的字符集问题

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

方案一

设置上方的字符集,并保持永久生效

方案二

  • 临时生效
export LESSCHARSET=utf-8
less -R xxx.log
  • 永久生效
    • 将下方内容
export LESS="-R"
export LESSCHARSET="utf-8"

添加到 ~/.bashrc~/.zshrc

  • source ~/.bashrc

相关文章:

  • 一种用于扩散磁共振成像(MRI)中多纤维参数估计和不确定性量化的深度学习方法|文献速递-深度学习医疗AI最新文献
  • jmeter接口自动化测试框架
  • 更改vs下的x86与x64的库平台
  • 解决Centos7集成IDEA报git版本太低问题
  • 86.方便的double转string属性 C#例子 WPF例子
  • Flutter之页面布局
  • 2.2 路径问题专题:LeetCode 63. 不同路径 II
  • 域名证书和 SSL 证书一样的吗?有什么区别呢
  • AI比人脑更强,因为被植入思维模型【40】九宫格思维模型
  • Spring Boot添加全局异常处理器捕捉异常 跳转登录页面
  • 2025 最新版HM程序员软件测试学习路线图
  • linux远程服务器传输文件
  • 激光模拟单粒子效应试验如何验证CANFD芯片的辐照阈值?
  • web-ui windows安装与配置
  • 《云端变革:云计算重塑现代企业架构的实践之路》
  • SEO关键词与长尾词实战策略
  • 牛客 除2问题
  • 禾赛科技社招面经
  • JVM深入原理(三+四):JVM组成和JVM字节码文件
  • [MySQL初阶]MySQL(8)索引机制:下