6

我已经安装了 Windows 终端,使用“哦,我的豪华”进行设置,一切都按预期工作。尽管每当我启动 PowerShell 7(没有终端)时,字体都很乱,如下图所示

在此处输入图像描述

我已经尝试将字体更改为我在终端的 .json 中使用的字体,但仍有一些部分无法正确呈现,我无法将其与 VSCode 一起使用

在此处输入图像描述

4

1 回答 1

5

问题是因为 Windows 控制台不完全支持 UTF-8

Windows 控制台创建于 Windows 早期,早在 Unicode 本身存在之前!当时,决定将每个文本字符表示为一个固定长度的 16 位值 (UCS-2)。因此,控制台的文本缓冲区包含每个网格单元的 2 字节 wchar_t 值,大小为 x 列 x y 行。...例如,一个问题是,由于 UCS-2 是一种固定宽度的 16 位编码,它无法表示所有 Unicode 代码点

这意味着您在 Windows 控制台中“部分”支持 Unicode 字符(即,只要该字符可以在 UCS-2 中表示),但不支持所有潜在的(32 位)Unicode 区域。

当您看到方框时,这意味着正在使用的字符正在使用 UCS-2 范围之外的区域。您还告诉了这一点,因为您得到 2 个框(即 2 x 16 位值)。这就是为什么你不能在 Windows 控制台中看到快乐的面孔(这让我很难过 ☹️)。

为了使其在所有位置都能正常工作,您必须修改 oh-my-posh 主题以使用可以用 UCS-2 字符表示的不同字符。

对于Oh My Posh 的第 2 版,要更改字体,您必须编辑$ThemeSettings变量。按照 GitHub 上关于配置主题设置的说明进行操作。例如:

$ThemeSettings.GitSymbols.BranchSymbol = [char]::ConvertFromUtf32(0x2514) 

对于 Oh My Posh 的版本 3+,您必须编辑 JSON配置文件以进行更改,例如:

...
{
    "type": "git",
    "style": "powerline",
    "powerline_symbol": "\u2514",
....
于 2021-05-19T19:04:31.257 回答