表情符号输出:xterm 转义序列奇怪吗?

Emoji output: xterm escape sequence oddity?

我有一个 .NET Core 应用程序。它唯一做的是:

System.Console.Out.WriteLine("\x1b%G");

当我 运行 在 Windows 终端的“全新”Powershell 选项卡上执行此操作时,它输出

??

当我在同一个选项卡中第二次 运行 时,它正确输出:

</code>(拉面表情符号)</p> <p>运行 同一行在一个进程中两次不起作用 - 它是 <code>?? 两次。

(如果我不包括 \x1b%G 转义序列,它 'never' 显示为拉面表情符号)

我想做什么

弄清楚是什么为终端“启用”表情符号(可以是 Windows 终端,Windows 11 中的新主机,等等)。

我认为可能是 \x1b%G,启用 UTF-8 的 xterm 转义序列。也许是? ...但为什么不等到进程退出并在 powershell 中再次启动?

其他说明

如果我不使用空白的 Powershell 配置文件,而是使用提供精美提示的配置文件(例如 Set-PoshPrompt -Theme powerlevel10k_rainbow)...那么表情符号将被“激活”/“启用”。那么也许 Powershell 或 posh 提示符可以做一些我可以复制的事情?

这个问题的正确答案是...

...告诉我我需要做什么才能让表情符号正确显示在我的终端中,而无需 运行 两次过程。

需要这样设置输出编码:

System.Console.OutputEncoding = Encoding.UTF8;