开发者工具 · 命令速查

ANSI 终端颜色

转义序列/前后景/样式

本地处理 · 不上传 免费 · 无需登录 无次数限制 累计 55 次使用
转义序列 · 前后景 / 样式 · 16 / 256 / RGB · 实时预览 · 反向解析 · 全本地
前景色foreground · 38
背景色background · 48
文本与样式text · styles
终端预览live preview · true colors
256 色板xterm-256 · click 复制 点击任一色 → 复制 \033[38;5;Nm(按住时设为前景)
反向解析parse ANSI → render 粘贴含转义序列的文本(识别 \033[…m / \e[…m / \x1b[…m / 真实 ESC)
第一节

关于本工具

About

在终端里调试日志输出,刚调好前景色,一加背景色,整行字糊成一团——因为忘了关转义序列。这个工具把 ANSI 转义码拆成前景、背景、样式三块单独生成,选完颜色和粗斜体,右侧直接出可复制的纯文本代码。所有计算在浏览器内完成,颜色值、样式组合不会离开本地。

使用场景

终端日志高亮

运维排查线上故障时,几百行日志刷屏,关键错误码和警告行混在一起。手动逐行看容易漏掉致命异常。用本工具把日志中的 ERROR 行设为红底白字、WARN 行设为黄底黑字、INFO 行恢复默认,一眼扫过就能定位问题行,排查时间从 15 分钟缩到 3 分钟。

CI 输出区分阶段

GitLab CI 流水线跑完,构建、测试、部署三个阶段的输出全挤在同一段灰底白字里。开发者在滚动条里反复拖拽找“测试失败”那一段。用本工具给每个阶段加不同的前景色和背景色——构建用蓝字、测试用黄字、部署用绿字,阶段切换时颜色骤变,一眼定位失败阶段。

多用户终端提示

共享开发服务器上,A 和 B 同时用同一个终端窗口跑后台任务。A 的编译输出和 B 的测试输出混在一起,谁都不敢按 Ctrl+C 怕误杀对方进程。用本工具给各自启动的命令行加不同背景色(A 用淡紫底、B 用淡青底),输出行底色不同,谁的任务出问题一目了然。

教学演示代码输出

讲师在直播课里演示 Python 爬虫,控制台输出大量 JSON 数据和错误堆栈。学员在弹幕里问“哪一行是报错”。讲师用本工具把 stdout 设为绿字、stderr 设为红字,并给关键步骤(如“请求成功”“解析完成”)加粗闪烁样式,学员无需解释就能分清正常输出与异常。

监控面板告警分级

运维大屏上同时展示 20 台服务器的 CPU、内存、磁盘告警,所有告警行都是默认白字。值班人员要逐行读文字判断“磁盘 90%”比“CPU 80%”更紧急。用本工具将 P0 级告警设为红底白字闪烁、P1 级设为黄底黑字、P2 级保持原样,紧急程度靠颜色就能排序,响应速度提升 40%。

第二节

使用指南

Getting Started

输入输出示例

输入输出说明
\e[31mHello\e[0mHello(红色前景)常规:最基础的前景色设置,验证转义序列是否被正确解析并渲染为红色,同时确认重置序列 \e[0m 能清除样式。
\e[1;33mWarning\e[0mWarning(加粗 + 黄色前景)常规:组合样式(加粗+颜色),验证多个参数用分号拼接的写法,以及加粗与前景色同时生效的效果。
\e[42mGreen BG\e[0mGreen BG(绿色背景)常规:纯背景色设置,验证背景色代码(40-47)的解析,确认前景色未指定时使用终端默认色。
\e[38;5;196mBright Red\e[0mBright Red(256色模式红色前景)边界:256色扩展色,验证 38;5;N 格式是否支持,并检查色号 196 是否对应标准红色(非 ANSI 基础红)。
\e[48;5;232mDark BG\e[0mDark BG(接近黑色的背景)边界:256色背景的极暗值(232),验证低端色号是否被正确映射,避免与纯黑色混淆。
\e[4mUnderline\e[24mUnderline(下划线样式)边界:仅样式无颜色,验证独立样式代码(4=下划线)及其关闭码(24)是否正常,确认样式与颜色可分离。
\e[31;42mRed on Green\e[0mRed on Green(红色前景 + 绿色背景)易错:前景与背景同时设置,注意顺序(前景在前、背景在后)是否影响渲染,以及组合后是否产生冲突(如红绿对比)。
\e[7mInverted\e[27mInverted(前景与背景互换显示)易错:反转模式(7)的视觉效果依赖终端实现,部分工具可能不支持或表现不一致,需验证是否正常翻转。

常见错误对照

1.前景色与背景色顺序写反

✗ 错误 白底红字
✓ 修复 红字白底

ANSI 转义序列中颜色参数顺序无严格要求,但常见习惯是前景在前、背景在后。部分终端解析时若顺序颠倒可能导致颜色互换或显示异常。

2.忘记用 m 结尾,序列不生效

✗ 错误[31 红色
✓ 修复 红色

ANSI SGR(Select Graphic Rendition)序列必须以小写字母 m 结束,缺少 m 终端无法识别为颜色指令,整个序列会被当作普通文本输出。

3.分号误用为逗号或空格

✗ 错误[31,47m 或 [31 47m
✓ 修复

ANSI 转义序列中多个参数必须用分号 ; 分隔,逗号或空格均不符合规范(ECMA-48),终端会忽略无效分隔符后的参数。

4.样式与颜色顺序不当导致样式被覆盖

✗ 错误 粗体红色 
✓ 修复 粗体红色 

某些终端解析时后设置的属性会覆盖前面的。若先设粗体再设颜色,可能颜色生效而粗体丢失;将颜色放前面可提高兼容性。

5.使用 256 色但漏掉 38;5 前缀

✗ 错误 亮红色
✓ 修复 亮红色

256 色扩展色必须通过 38;5;n(前景)或 48;5;n(背景)调用,直接写颜色编号 n 会被终端当作标准 8/16 色索引,显示完全不同。

6.真彩色(24位)格式写错

✗ 错误 红色
✓ 修复 红色(正确)

真彩色序列格式为 ;G;Bm,其中 R/G/B 取值范围 0-255。常见错误是写成 38;2;R,G,B 或漏掉分号,导致终端无法解析。

7.重置序列  位置不当,影响后续文本

✗ 错误红色文字 普通文字
✓ 修复红色文字 普通文字(正确)

重置序列  会清除所有样式(颜色、粗体、下划线等)。若放在行尾而非紧接在着色文本后,会导致后续整行文本丢失样式。

第三节

工作原理

How It Works

核心公式

SGR = 38;2;R;G;Bm 或 48;2;R;G;Bm

变量说明

  • SGR选择图形再现参数,38=前景,48=背景
  • R红色通道值,0–255 整数
  • G绿色通道值,0–255 整数
  • B蓝色通道值,0–255 整数

示例

设置前景色为橙色 (R=255, G=165, B=0):序列为 \033[38;2;255;165;0m。终端收到后解析 SGR=38 表示前景,RGB 通道值依次为 255、165、0,混合后显示橙色。

原始文本含转义序列解析序列提取 \x1b[...m映射样式前景/背景/加粗渲染校验序列格式/范围检查错误提示
用户输入 / 错误 本地处理 输出结果
第五节

常见问题

Q & A
我输入了 ANSI 代码,为什么预览里颜色没变化?

最常见原因是缺少 ESC 转义字符(\x1b 或 \033)。本工具要求输入完整的转义序列,例如 \033[31m,而不是纯数字 31m。另外,某些终端模拟器对 8 位色(38;5;N)和 24 位色(38;2;R;G;B)的支持程度不同,如果代码正确但预览不生效,可以尝试切换为 16 色标准代码(如 31/41/1/4)验证。

为什么同一个 ANSI 代码在 Windows 和 macOS 上显示效果不一样?

不同终端模拟器(如 Windows Terminal、iTerm2、GNOME Terminal)对 ANSI 标准的实现有细微差异。例如 Windows 默认的 cmd 对 24 位真彩色支持较弱,而 macOS 的 Terminal.app 对斜体样式(\033[3m)可能忽略。本工具预览基于 Web 标准渲染,与实际终端表现可能存在偏差,建议先用工具验证代码结构,再在目标终端实测。

代码里的 38;2;255;0;0 是什么意思?怎么自己写?

这是 24 位真彩色前景色的标准格式:\033[38;2;R;G;Bm,R/G/B 各取值 0-255。例如 38;2;255;0;0 是红色前景。类似地,48;2 开头表示背景色。本工具支持直接在输入框里写这种序列,预览区会实时渲染。如果记不住 RGB 值,也可以先用颜色选择器(如果有)生成代码后粘贴。

为什么我加了 \033[0m 重置,后面的文字还是带颜色?

\033[0m 会重置所有属性(颜色、样式、亮度),但前提是它必须出现在需要重置的位置之后。常见错误是把重置代码放在了换行符前面,而终端渲染时换行会打断序列作用域。建议将重置序列紧跟在需要结束样式的文本后面,例如 '红色文字\033[0m普通文字',中间不要加换行。如果仍不生效,检查是否混入了不可见字符。

ANSI 代码里的 1(粗体)和 3(斜体)能同时用吗?

可以,使用分号合并即可,例如 \033[1;3;31m 表示粗体+斜体+红色前景。但不同终端对组合样式的支持不同:粗体通常没问题,斜体在部分终端(如 Windows 旧版 cmd)会被忽略,闪烁(5/6)在多数现代终端中也不支持。本工具会尽力模拟组合效果,但最终呈现以目标终端为准。

有没有办法把 ANSI 代码转成 HTML 或 Markdown?

本工具仅提供 ANSI 转义序列的预览和验证,不直接输出 HTML/Markdown。如果需要转换,可以手动映射:\033[31m 对应 <span style="color:red">,\033[1m 对应 <strong>。部分在线转换服务(如 ansi-to-html)支持批量转换。如果只是临时查看效果,直接在本工具预览区复制渲染后的文本即可。

我粘贴了一长串带 ANSI 代码的日志,为什么预览只显示了一部分?

本工具对输入长度没有硬性限制,但如果日志中包含大量连续的非打印字符(如 \033[K 清除行、\033[nA 光标移动等),这些序列在纯预览模式下不会产生可见效果,可能导致视觉上感觉内容被截断。建议先过滤掉光标移动和清屏序列,只保留颜色和样式相关的代码再粘贴。

隐私保证所有计算与处理均在你的浏览器本地完成,输入数据不会上传服务器,也不会保存或共享。

选择 打开 +新窗口 esc关闭