代码页437中显示旧的DOS字符错误

时间:2012-07-19 16:33:53

标签: c# visual-studio character-encoding console-application codepages

我正在制作一个文本模式的游戏,显然我在C#中展示一些关键角色时遇到了一些问题。它们来自代码页CP437,但即使我将代码页设置为437:

Console.OutputEncoding = Encoding.GetEncoding(437);

当我尝试打印我需要的字符时,我唯一看到的是“????” (一些问号),好像Visual Studio的控制台无法打印它们。我需要的这些字符是0xB0,0xB1,0xB2,0xDB。

BTW,我在这个编码中打印了所有256个字符,我发现有更多的字符显示为“?”。

TIA。

1 个答案:

答案 0 :(得分:2)

控制台的默认代码页已经是437.最可能的失败模式实际上是尝试写入0xb0等,而不是这些字符的Unicode版本。这确实会导致很多问号,U + 0080到U + 00ff范围内的许多代码点都是未分配的,或者在第437页中没有相应的字符。

代码页437中的

0xb0在C#代码中是'\ u2591'。检查this page代码。