跳到主要内容
ansicode

ANSI 转义码解码器

粘贴包含 ANSI 转义码的字符串(字面 ESC 字节,或 \x1b[、\033[、\e[ 等转义形式)。我们会对其进行词法分析,展示渲染结果并逐条说明每个转义。

输入

渲染输出

Error: something went wrong on line 42

逐字段拆解

本次输入包含族系:textSGR
SGRESC [ 1;31mbold + fg redfgB
text"Error:"fgB
SGRESC [ 0mSGR reset
text" "
SGRESC [ 33mfg yellowfg
text"something went wrong"fg
SGRESC [ 0mSGR reset
text"\non "
SGRESC [ 36;1mfg cyan + boldfgB
text"line 42"fgB
SGRESC [ 0mSGR reset

日志里常见的转义模式

构建日志、kubectl、git、journalctl 输出里你会反复遇到的转义片段。点击任意模式的「在解码器中试一下」按钮,即可把对应字节灌入上方文本框,立即看到逐字段拆解结果。

CI 构建日志 —— 错误严重性前缀

几乎所有构建工具(GitHub Actions、GitLab、CircleCI)在测试失败或编译错误时都会输出的红色加粗严重性标签。

\x1b[1;31mERROR\x1b[0m  Test failed in src/login.test.ts:42
在解码器中试一下 →

kubectl get pods —— 状态颜色

Running 加粗绿色,CrashLoopBackOff 红色 —— kubectl 在 TTY 下输出的标准 SGR 配色。

\x1b[1;32mRunning\x1b[0m           nginx-7f8b8c5d-x4k9j   1/1   2h\n\x1b[1;31mCrashLoopBackOff\x1b[0m  api-6c4d8e9-z7q2m      0/1   12m
在解码器中试一下 →

git diff —— 新增、删除、hunk 头

新增行绿色、删除行红色、hunk 头部青色 —— 在 --color=always 或 stdout 为终端时 git 的默认配色方案。

\x1b[36m@@ -1,3 +1,4 @@\x1b[0m\n\x1b[32m+import { foo } from "./foo";\x1b[0m\n\x1b[31m-import { bar } from "./bar";\x1b[0m
在解码器中试一下 →

journalctl —— 按严重性着色的日志行

systemd 的 journalctl 按 syslog 优先级给每行日志染色 —— ERROR 加粗红、WARN 加粗黄、DEBUG 暗色。

\x1b[1;31mERR\x1b[0m  systemd[1]: Failed to start nginx.service\n\x1b[1;33mWARN\x1b[0m sshd[1234]: invalid user admin from 192.0.2.1
在解码器中试一下 →

解码输入中最常出现的转义序列对应的权威页面。

FAQ

什么是 ANSI 转义码?
一小段字节序列(几乎总是以 ESC 即 0x1b 开头),用来告诉终端如何给文本上色、移动光标、切换屏幕模式或设置窗口标题。构建日志、测试输出、kubectl 输出、git 输出,以及几乎所有会输出彩色文本的 CLI 工具中都能看到。
为什么我的日志文件里会出现像 \x1b[31m 这样的字符?
当 CLI 工具把彩色输出写入文件(而非真实终端)时,转义字节会被原样写入。多数工具会检查 isatty(stdout) 并在被管道时关闭颜色 —— 但用 --color=always 调用的工具(git、ls、tsc)会绕过该检查,留下原始字节。
如何从字符串里剥离 ANSI 转义码?
针对 SGR(颜色 / 样式)序列,正则 \x1b\[[0-9;]*m 已能覆盖常见场景。如需完整覆盖 OSC、DCS、光标控制等序列,请查看本站「剥离 ANSI 转义码」页面里按语言整理的方案。