ANSI颜色之间的差异?

时间:2017-09-29 15:06:54

标签: ansi-colors

我正在搜索在NetBeans中更改控制台的输出颜色并找到this帖子。 我尝试了第一个答案,并完美地改变了颜色。我尝试了第五个答案,......也工作了。

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

第一个答案的例子:

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

第五个答案的例子:

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

我做了一些研究,但我真的无法理解为什么。

我感谢您的回答或帮助,让我理解它。

2 个答案:

答案 0 :(得分:1)

反斜杠表示法表示一个字节的本地表示八进制数。 \u表示法表示16位十六进制Unicode表示。 \u001b\033都表示ESC,因此在这方面它们是相同的。

据说,两个序列不一样。第一个序列给出一个命令34,这意味着"前景色为蓝色"。第二个序列给出两个命令,用分号分隔。第二个是34,但第一个是0,这意味着"重置"。

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

答案 1 :(得分:0)

除了给定的答案,我想添加一些我在this链接中找到的信息。在页面中,您可以看到构造转义序列的不同方法及其每个部分的含义,以及可能的值。举个例子:

  

Esc[Value;...;Valuem
  设置图形模式:   调用由以下值指定的图形函数。这些指定的函数在下一次出现此转义序列之前保持活动状态。图形模式会更改屏幕上显示的文本(如粗体和下划线)的颜色和属性。

     

文字属性
  0所有属性关闭
  1大胆上   4下划线(仅限单色显示适配器)
  5闪烁   7反转视频   8隐藏在