使用Set Console Output()将特殊字符写入控制台

时间:2014-09-07 07:17:46

标签: c# console character ascii utf

我在c#中制作控制台游戏并使用win32控制台IO功能来提高性能。 如果我使用.NET中的Console.Write函数来打印像块一样的特殊ASCII字符,它就可以工作。但是,由于我正在写入一个CHAR_INFO结构数组并将其传递给SetConsoleOutput(),因此它不起作用。

例如,

charInfoArray[0, 0].AsciiChar = (byte)'█';
//OR
charInfoArray[0, 0].UnicodeChar = '█';

SetConsoleOutput(h, charInfoArray, new Coord(width, height), new Coord(0, 0));

输出重音'。

但是我能做到     charInfoArray [0,0] .AsciiChar =(char)(byte)219; // 219是'█'的ASCII码 但在可读性方面,这非常令人讨厌和限制。

经过一番谷歌搜索,我尝试了一些建议的解决方案,如:

  • SetConsoleOutputCP(CP_UTF16),什么都没做
  • SetConsoleOutputCP(CP_UTF8),什么都没做
  • Console.OutputEncoding = Encoding.UTF8,什么都没做
  • 哭泣。

此时我仍然不确定为什么会发生这种情况。任何信息和/或解决方案将不胜感激!

0 个答案:

没有答案