引言
ANSI是一种字符编码,其扩展了ASCII编码。
如果想在终端输出带有颜色的字体,可以通过ANSI来实现。
window 系统不支持颜色,cygwin 和 mingw支持颜色。
控制码
ANSI控制码均以 Esc 作为控制码的开始标志,其中,
Esc 的ansi十进制码为 27,八进制码为33,所以可以使用 \033 表示。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 | \33[0m 关闭所有属性 \33[1m 设置高亮度 \33[4m 下划线 \33[5m 闪烁 \33[7m 反显 \33[8m 消隐 \33[30m -- \33[37m 设置前景色 \33[40m -- \33[47m 设置背景色 \33[nA 光标上移n行 \33[nB 光标下移n行 \33[nC 光标右移n行 \33[nD 光标左移n行 \33[y;xH设置光标位置(现已很少使用) \33[2J 清屏 \33[K 清除从光标到行尾的内容 \33[s 保存光标位置 \33[u 恢复光标位置 \33[?25l 隐藏光标 \33[?25h 显示光标 \33[30m到 \33[37m 设置前景色 \33[40m到 \33[47m 设置背景色 |
参考自:https://www.cnblogs.com/hbt19860104/archive/2012/08/07/2627130.html
常用颜色码
字体颜色范围:30-39
字体背景颜色范围:40-49
1 2 3 4 5 6 7 8 9 10 11 12 | //重置color,恢复默认color private static final String RESET = "\033[0m"; private static final int DEFAULT = 39;//默认颜色 private static final int BLACK = 30;//黑色 private static final int RED = 31;//红色 private static final int GREEN = 32;//绿色 private static final int YELLOW = 33;//黄色 private static final int BLUE = 34;//蓝色 private static final int MAGENTA = 35;//紫色 private static final int CYAN = 36;//青色 private static final int WHITE = 37;//白色 |
详细颜色码
说明:
\033[#m 为样式,
\033[3#m 为前景色,
\033[4#m 为背景色,
\033[1;3#m 为粗体前景色。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 | \033[0m关 \033[1m粗体\033[0m \033[2m无\033[0m \033[3m无\033[0m \033[4m下划线\033[0m \033[5m闪烁\033[0m \033[6m无\033[0m \033[7m反显\033[0m \033[8m消隐\033[0m \033[9m无\033[0m \033[30m黑\033[0m \033[31m酱红\033[0m \033[32m浅绿\033[0m \033[33m黄褐\033[0m \033[34m浅蓝\033[0m \033[35m紫\033[0m \033[36m天蓝\033[0m \033[37m灰白\033[0m \033[1;30m浅黑\033[0m \033[1;31m红\033[0m \033[1;32m绿\033[0m \033[1;33m黄\033[0m \033[1;34m蓝\033[0m \033[1;35m粉红/洋红\033[0m \033[1;36m青/蓝绿\033[0m \033[1;37m白\033[0m |
参考自:http://www.yeolar.com/note/2013/01/16/ansi-color/
例子 + 说明
比如:"\033[33m黄色字体\033[0m"
其中:
“\033[” : 控制码的开始开始标志
“33” :颜色编码,33表示黄色
“m” :控制字符相关的标志
“\033[0m” :恢复默认颜色,通常结束处会将颜色恢复为默认39
1 2 3 | public static void main(String[] args) { System.out.println("\033[33m黄色字体\033[0m"); } |
使用idea测试会有一些显示不出来。