为啥ANSI颜色转义码不起作用[重复]

Posted

技术标签:

【中文标题】为啥ANSI颜色转义码不起作用[重复]【英文标题】:Why are ANSI color escape codes not working [duplicate]为什么ANSI颜色转义码不起作用[重复] 【发布时间】:2021-04-17 09:01:50 【问题描述】:

我正在做一个单词搜索,我想用颜色标记用户找到的单词,但我只得到打印的字符串代码而不是颜色。我创建了一个单独的类来测试颜色是否有效,但没有办法。如何打印颜色?

public class color 
    
    public static void main(String[] args) 
        String black="\033[30m"; 
        String red="\033[31m"; 
        String green="\033[32m"; 
        String yellow="\033[33m"; 
        String blue="\033[34m"; 
        String purple="\033[35m"; 
        String cyan="\033[36m"; 
        String white="\033[37m"; 
        String reset="\u001B[0m";

        System.out.println ();
        System.out.println (red + "Text string in red" + reset);
        System.out.println (green + "Text string in green" + reset);
        System.out.println (yellow + "Text string in yellow" + reset);
        System.out.println (white + "Text string in white" + reset);
        System.out.println (black + "Black text string" + reset + "(<- black text string that cannot be seen because my background is black)" + reset);
        System.out.println (blue + "Text string in blue" + reset);
        System.out.println (purple + "Magenta string" + reset);
        System.out.println (cyan + "Text string in cyan" + reset);
        System.out.println (reset + "Default color string" + reset);
        System.out.println ();
    

【问题讨论】:

也许你的控制台不支持颜色? HI,[31mText string in red[0m is the result 我使用 eclipse @YoutuberMX eclipse 是一个 IDE,而不是控制台。 我使用 MAC OS X Sierra 【参考方案1】:

ANSI 颜色转义码的工作假设是有一些实例(我们称之为“控制台”)接收字符(包括转义序列)、解释它们并根据解释显示带有颜色的字形。

如果您将输出发送到此类与 ANSI 兼容的控制台,那么您将获得彩色文本,但您正在使用的控制台(Eclipse 中的“控制台”视图?)显然与 ANSI 不兼容。

【讨论】:

以上是关于为啥ANSI颜色转义码不起作用[重复]的主要内容,如果未能解决你的问题,请参考以下文章

为啥我的链接颜色关键帧动画在 Chrome 中不起作用?

为啥身体上的背景颜色不起作用? [复制]

梨邮件和谷歌验证码不起作用

firebase auth的自动检测验证码不起作用

如果存在媒体查询,则 SVG 掩码不起作用

为啥文本颜色在 Tailwind css + next.js 项目中不起作用