【问题标题】:Emoji output: xterm escape sequence oddity?表情符号输出:xterm 转义序列奇怪?
【发布时间】:2022-01-05 04:38:13
【问题描述】:

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

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

当我在 Windows 终端的“新”Powershell 选项卡上运行它时,它会输出

??

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

????(拉面表情)

在一个进程中运行同一行两次不起作用 - 它是 ?? 两次。

(如果我不包含\x1b%G 转义序列,它“永远不会”显示为拉面表情符号)

我想要做什么

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

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

其他说明

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

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

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

【问题讨论】:

    标签: unicode terminal emoji windows-terminal


    【解决方案1】:

    需要这样设置输出编码:

    System.Console.OutputEncoding = Encoding.UTF8;

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-08-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-12-11
      • 2021-07-13
      相关资源
      最近更新 更多