引言
ANSI是一种字符编码,其扩展了ASCII编码。
如果想在终端输出带有颜色的字体,可以通过ANSI来实现。
window 系统不支持颜色,cygwin 和 mingw支持颜色。
控制码
ANSI控制码均以 Esc 作为控制码的开始标志,其中,
Esc 的ansi十进制码为 27,八进制码为33,所以可以使用 \033 表示。
\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
//重置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 为粗体前景色。
\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
public static void main(String[] args) {
System.out.println("\033[33m黄色字体\033[0m");
}
使用idea测试会有一些显示不出来。