Windows 10 bash 终端中的 UTF8 字符

Ort*_*x92 48 bash zsh windows-10 windows-subsystem-for-linux windows-10-v1607

我已经在 Windows 10 上安装了新的 bash shell。我将它与 ZSH 一起使用。但是,utf8 字符都不起作用,它们显示为方块。如何在 shell 中默认启用 utf8 字符编码?那可能吗?

Jos*_*a M 16

要添加到 Doctorj 的答案中,您可以使用默认安装的几种字体(在 Windows 10 bash shell 上)。

测试语言:保加利亚语、乌克兰语、简体中文、繁体中文、丹麦语、法语、德语、意大利语、日语、哈萨克语、韩语、马其顿语、蒙古语、挪威语、波兰语、葡萄牙语、俄语、塞尔维亚语、西班牙语、瑞典语。

以下默认字体显示所有观察到的字符:

  • 哥特女士
  • 新星
    • 似乎没有显示所有哈萨克语。
  • SimSun-ExtB(光栅字体) - 我的推荐

MS Gothic 和 NSimSun

  • 将非拉丁非 CJK(中文、日语、韩语)语言(马其顿语、哈萨克语、保加利亚语)隔开。
  • 在重音拉丁字符 (á,é) 上有一个奇怪的垂直偏移。
  • 未显示至少一个马其顿字符。

SumSun-ExtB(光栅字体):

  • 有一条警告消息说光栅字体可能无法正常显示。
  • 大多数字符显示较暗(可能是屏幕亮度低的问题)。
  • 与 ASCII 字符相比,非 ASCII 字符更亮(可能的解决方案,使用粗体选项)。
  • 所有语言的字符靠在一起(更容易看到单词之间的间距)。
  • 对于非拉丁非 CJK 语言似乎更可靠。

使用任何这些字体,命令提示符和 PowerShell,当您单击非 ASCII 字符时会发生奇怪的事情,尽管当您突出显示文本时它会恢复正常。

安装字体: 请注意,您需要更改正在使用的 Windows shell 的字体,例如命令提示符或 PowerShell,而不是 Linux 方式通过 bash。此链接描述了可以在命令提示符上使用的字体(等宽字体,以及如何为命令提示符安装和选择字体):将字体添加到命令提示符

  • 调出注册表编辑器(运行“regedit”)
  • 找到文件夹 HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Console\TrueTypeFont
  • 右键单击(或编辑)-> 新建-> 字符串值
  • 将字体命名为比最后一个多一个 0(例如“000”)。
  • 右键单击该条目并选择“修改...”
  • 输入字体或 OTF 文件的名称(不带 .otf)。

有关在 Windows 上通过命令行安装字体的信息,请参阅此问题和答案。

  • 我尝试安装“Source Code Pro”,但它没有出现在我的字体中。
  • 我安装了 DejaVu Sans Mono,它适用于大多数语言,但对 CJK 根本不起作用。
  • 我安装了 Google 的 Noto monospace 字体,它有效,但不适用于 CJK。此外,他们特别说他们没有对 CJK 的等宽支持。
  • 我安装了 Google 的 Inconsolata,不值得一试。
  • 我安装了 GNU FreeFont (FreeMono),它工作正常,但不适用于 CJK。
  • 我放弃了,回到 SimSun-ExtB。

(注意:我还没有足够的声誉来发布链接)。


小智 15

右键单击 bash 窗口顶部的标题栏,选择条目属性。在打开的窗口中有一个选项卡,您可以在其中更改字体。我将字体更改为“Source Code Pro”,大小为 14。

看起来不错,所有 utf-8 字符都可以使用。

  • 请注意,我已经尝试了 Windows 中的所有默认选项(包括 Source Code Pro),并且复选标记字符 (✔) 仅适用于 @user3599934 建议的“DejaVu Sans Mono”字体! (3认同)

小智 12

你可以试试 DejaVu Sans Mono - 它对我有用。

  • 虽然这可能是 OP 问题的解决方案,但与其说是高质量的答案,不如说是一种提示。可以通过以下说明进行改进:1)如何更改 Windows 10 Bash 终端的字体;2)如何安装所述字体(除非默认情况下它在每个Windows 10中 - 我在Linux上,我不知道)。 (11认同)