ANSI颜色之间的区别?

Difference between ANSI color?

我正在搜索有关在 NetBeans 中更改控制台输出颜色的信息,并找到了 this post。 我尝试了第一个答案并且完美地改变了颜色。我尝试了第五个答案并且......也有效。

我的问题是:为什么每一种颜色指定的字符串第一和第五不同?

第一个回答的例子:

public static final String ANSI_BLUE = "\u001B[34m";

第五个答案的例子:

public static final String BLUE = "3[0;34m";    // BLUE

我做了一些研究,但我真的想不通为什么。

感谢回答或帮助我理解它。

反斜杠符号表示一字节本地表示八进制数。 \u 符号表示 16 位十六进制 Unicode 表示。 \u001b3 都表示 ESC,所以在这方面它们是相同的。

话虽如此,这两个序列并不相同。第一个序列给出一个命令,34,意思是"foreground color blue"。第二个序列给出了两个命令,用分号分隔。第二个是34,但是第一个是0,意思是"Reset".

所以第一个序列将颜色更改为蓝色,而第二个序列重置设置,然后将颜色设置为蓝色。

除了给出的答案外,我还想添加一些我在 this link 中找到的信息。在该页面中,您可以看到构建转义序列的不同方法及其每一部分的含义,以及可能的值。例如:

Esc[Value;...;Valuem
Set Graphics Mode: Calls the graphics functions specified by the following values. These specified functions remain active until the next occurrence of this escape sequence. Graphics mode changes the colors and attributes of text (such as bold and underline) displayed on the screen.

Text attributes
0 All attributes off
1 Bold on
4 Underscore (on monochrome display adapter only)
5 Blink on
7 Reverse video on
8 Concealed on