我已经在Windows 10上安装了新的bash shell。我将它与ZSH一起使用。但是,utf8字符都不起作用,它们显示为方形块。如何在外壳中默认启用utf8字符编码?那可能吗?
chcp 65001
将代码页更改为UTF-8并将字体更改为Consolas
SimSun-Ext B
字体,所有字符均正确显示。
我已经在Windows 10上安装了新的bash shell。我将它与ZSH一起使用。但是,utf8字符都不起作用,它们显示为方形块。如何在外壳中默认启用utf8字符编码?那可能吗?
chcp 65001
将代码页更改为UTF-8并将字体更改为Consolas
SimSun-Ext B
字体,所有字符均正确显示。
Answers:
为了增加Doctorj的答案,默认情况下可以使用几种字体(在Windows 10 bash shell上)。
经过测试的语言:保加利亚语,乌克兰语,简体中文,繁体中文,丹麦语,法语,德语,意大利语,日语,哈萨克语,韩语,马其顿语,蒙古语,挪威语,波兰语,葡萄牙语,俄语,塞尔维亚语,西班牙语,瑞典语。
以下默认字体显示所有观察到的字符:
MS Gothic和NSimSun
SumSun-ExtB(光栅字体):
对于命令提示符和PowerShell,使用这些字体中的任何一种,当您单击非ASCII字符时,都会发生怪异的事情,尽管当您突出显示文本时,它会恢复正常。
要安装字体:请注意,您需要更改所用Windows Shell的字体,例如命令提示符或PowerShell,而不是Linux通过bash的方式。此链接描述了可以在命令提示符上使用的字体(等宽字体,以及如何为命令提示符安装和选择字体):将字体添加到命令提示符
有关在Windows上通过命令行安装字体的信息,请参阅此问题和解答。
(注意:我没有足够的声誉来发布链接)。
您可以尝试DejaVu Sans Mono-它对我有用。
这实际上是评论而不是答案,但是由于SE不允许我发表评论...
您没有提供足够的信息。Unicode提供了超过一百万个可能的字符,其中已经定义了十万多个。(其余的用于当我们联系外星人时,或者更可能是针对尚未编码的地球人的书写系统。)它们被划分为大约150种脚本:拉丁文,西里尔文,阿拉伯文,中文...没有字体为所有这些字符提供字形(字符的图片)。(有一两个提供一个带有代码点的盒子,但这不是您想要的。)
就像两年前的话说的那样,如果您得到一个希望有单个字符的框,则您的应用程序已经在显示Unicode(大概是Unicode的UTF-8编码)。您缺少的是一种字体,它可以为要显示的任何脚本提供字形。如果要显示俄语,则需要一种带有西里尔字母的字体;如果要显示中文,则需要带有这些字符的字体。(大多数此类字体还将显示拉丁字符(我们用于英语的那种字符,但不一定漂亮)。
所以我的问题是:您要显示什么脚本?直到我们知道,所有答案都是猜测。
顺便说一句,有些脚本非常复杂,即使您的字体正确,也只有一些程序可以正确显示它们。其中包括缅甸语,一些印度文字(例如Devanagari)和阿拉伯语(从右到左书写,并且其字符应根据相邻字符显示不同)。