Visual Studio 控制台如何决定如何表示不可打印的 ascii 字符?

问题描述 投票:0回答:1

我正在使用编码。 我的字节数组包含 ascii NULL ( )、END OF MEDIUM (\u0019) 和文件分隔符 (c)。 (链接

Encoding.ASCII.GetString(bytesRequest)
设法将字符解码为以下字符串:

\u0019_STACKO_001_55010\u001cB

既然这三个字符是不可打印的,那么VS控制台如何决定如何显示这些字符呢?

谢谢,

c# .net unicode encoding ascii
1个回答
0
投票

我对控制台的内部工作没有任何了解,我正在研究有关 Unicode 的知识,但这是我到目前为止已经弄清楚的。

VS 控制台属性

如果右键单击控制台窗口的标题,则可以选择“属性”。在第一个选项卡(“选项”)中,您将找到“当前字符表”。在我的电脑上,它显示“850(OEM - ...)”。在美国可能是 437。

代码页

代码页 850 的第一部分 (0-127) 与代码页 437 中的相同:

代码页 437 - 维基百科

在这里您可以找到不可打印字符使用的符号以及相应的 Unicode 代码点。

字体

VS 控制台正在将控制代码转换为代码页 437 中描述的相应 Unicode 代码点。

您在“属性”(“字符”)的第二个选项卡中选择的字体将负责控制台中符号的外观。在我的电脑上,“Consolas”是默认字体。

如果您选择“Lucida Sans Typewriter”作为字体,您将看到控制字符的框,因为该字体没有任何用于控制字符的 Unicode 代码点的字形。

您可以使用“字符映射表”来显示 Windows 中已安装字体的字形。

© www.soinside.com 2019 - 2024. All rights reserved.