IRONSOFTWAREHOME

在控制台中添加表情符号 - Spectre 控制台系列

为您的游戏机添加表情符号 - Spectre 游戏机系列

Tim Corey

6m 08s

Spectre.Console 是一个 .NET 库,可帮助您将普通的 C# 控制台应用程序转变为美观、功能丰富、信息量大的工具。 在他的 Spectre 控制台系列中,Tim Corey 用了一整段视频来介绍"在控制台中添加表情符号 - Spectre 控制台系列"。

在本文中,我们将按照 Tim 的视频一步步深入了解如何在 Spectre.Console 中使用表情符号。

简介:Spectre 控制台表情符号概述

在课程开始时,Tim 解释说,Spectre Console 可以让你 "将你的 C# 控制台应用程序变成视觉效果好、信息量大的应用程序"。他指出,他演示的源代码可以通过视频描述中的链接在 GitHub 上找到,这样就可以很方便地安装软件包并进行学习。

Tim 说,在本课中,我们将学习如何在控制台输出中添加表情符号。 他指出,他在译文中提供了一个指向官方表情符号列表的 URL 以及有关如何使用这些表情符号的更多文档。 他说,这一点至关重要,因为在 Spectre Console 中显示表情符号有三种不同的方法,其中有两种方法需要知道表情符号的实际字符串名称。

这与 Tim 在演示中广泛使用的 markdown 提示Spectre 控制台标记的理念直接相关。

方法 1:使用 Spectre 控制台标记表情字符串

Tim 的第一个演示展示了显示表情符号的最简单方法--在 Spectre Console 标记中嵌入表情符号名称。他使用 AnsiConsole.MarkupLine 写了一行表情符号占位符:

AnsiConsole.MarkupLine("I like :baseball: :american_football:");

Tim 解释说,标记系统会检测作为表情符号字符串开始和结束的冒号,并将其替换为实际的表情符号字符。 如果您在一个简单类 Program 中的 static void Main 中运行这段代码,控制台会在您的输出中显示棒球和美式足球表情符号。

不过,Tim 提醒您注意语法:如果您打错了 emoji 名称(例如,使用 :football: 而不是 :american_football:),终端将退回到只显示 :football: 文本。 他指出,您必须完全按照表情符号列表中的定义键入表情符号字符串。

本示例还展示了输出编码和控制台字体支持如何影响显示效果。 Tim 说,底层系统、字体和终端(Windows 终端、PowerShell、cmd 等)都决定了这些字符的呈现方式或是否呈现。

方法 2:使用 Emoji.Known 对象简化查找

Tim 接着介绍了他的第二种方法:使用 Emoji.Known 对象。 这种方法避免了记忆 emoji 名称,您可以从库提供的列表中选择它们。 他写道

AnsiConsole.WriteLine($"Hello {Emoji.Known.WorldMap}");

蒂姆指出,这使得通过编程挑选表情符号变得非常容易。 在集成开发环境中,您可以看到 Spectre.Console 支持的所有通用表情符号,如香蕉、鳄梨、人脸等,无需输入以冒号分隔的名称即可插入。

他还解释了为什么您可能更喜欢这种方法。 这种风格更容易放入数据库或外部资源。 之后,当您渲染控制台输出时,只需提取对象引用(如 Emoji.Known.Banana)并显示即可。 这也是以强类型方式获取 SpectreDemoEmoji 而不是依赖字符串的好方法。

方法 3:从外部资源替换表情字符串

Tim 的第三种方法是模拟从数据库中提取数据。 他写道

string displayText = "I am totally normal :zany_face:\n";
AnsiConsole.Write(displayText);

运行这段代码时,控制台不会显示表情符号。 而不是按字面意思打印出 :zany_face:。 Tim 向我们展示了必须使用 Emoji.Replace 方法将表情符号名称明确替换为真实的表情符号:

AnsiConsole.Write(Emoji.Replace(displayText));

该方法可将来自外部的字符串转换为可渲染实际表情符号的字符串。 Tim 说,当文本中包含用户输入的表情符号占位符或标记符提示时,这一点至关重要。

其他 Spectre 控制台功能中的表情符号

Tim 指出,表情符号不仅仅适用于静态文本。 Spectre.Console 的一些内置部件和旋转器已经在内部使用了表情符号。 他提到了一个在晴天、多云和雨天之间循环的天气旋转器。 这表明,Spectre.Console 中的函数、方法和任务可以使用表情符号,使其显示更具表现力。

终端和操作系统支持问题

在展示了表情符号的炫酷外观之后,Tim 解释了一个重要的限制:表情符号的支持取决于您的操作系统、控制台字体和输出编码。

他演示了在 Windows 终端、Visual Studio 控制台和经典 cmd shell 中运行相同代码的过程。 在某些情况下,您会看到问号而不是表情符号。 这是因为控制台无法处理 Unicode 字符。

Tim 警告说,您必须设计好控制台输出,以便在表情符号无法呈现的情况下仍能说明问题。 例如,如果您显示 "我喜欢 ⚾ 🏈" 而表情符号没有出现,它就会变成 "我喜欢......"。 ......",用户不再知道您在说什么。 但是,如果显示的是 "我喜欢棒球⚾",那么即使没有表情符号,文字仍然可以表达意思。

他强调说,虽然表情符号可以为 Spectre.Console 应用程序增色不少,但您不应该将其作为唯一的交流方式。

更多表情符号帮助和安全选择

最后,Tim 引用了他提供的 URL。 该链接包含受支持的表情符号的完整列表、markdown 提示以及哪些表情符号在跨终端时最安全。 他建议查看更多表情符号帮助、示例和更新。 在这里,您可以找到香蕉、鳄梨、人脸和其他有趣图标的定义名称,以及有关浏览器或系统兼容性的信息。

结论

最后,Tim Corey 总结了在 Spectre.Console 中使用表情符号的三种主要方式:

  • 以冒号分隔名称的 Spectre 控制台标记。

  • Emoji.Known 对象便于查找。

  • 使用 Emoji.Replace 方法处理来自外部的字符串。

他还重申,字体支持、输出编码以及用户的终端或操作系统(cmd、PowerShell、Windows 终端)都会影响表情符号的显示方式。 请务必在表情符号旁边加上文字,并在多个 shell 中测试控制台输出,以确保兼容性。

通过观看 Tim 的视频,您可以轻松创建、安装和运行 Spectre.Console 应用程序,这些应用程序使用表情符号使您的控制台输出更友好、信息更丰富--而不会在表情符号支持有限的情况下失去清晰度。

Earn More by Sharing What You Love

Do you create content for developers working with .NET, C#, Java, Python, or Node.js? Turn your expertise into extra income!

Let's Stay in Touch!

Join our newsletter, you’ll get exclusive access on article updates. We value your privacy

Key in blue circle

立即获取免费的 30 天试用版密钥

Your trial license will be sent to your email address

无任何限制。100% 解锁。无需信用卡。

bullet_checked无需信用卡或创建账户无任何限制。100% 解锁。无需信用卡。
  • Logo Aetna
  • Logo NASA
  • Logo GE
  • Logo Porsche
  • Logo USDA
  • Logo Qatar
Join Millions of Engineers who’ve tried IronPDF
获取您的无义务咨询
填写下面的表格或通过sales@ironsoftware.com
您的资料将始终保密。
深受全球数百万工程师信赖
Iron Software 的客户徽标
立即获取您的免费30 天试用密钥
无需信用卡或创建账户