Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/337.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何将项目符号字符打印到控制台?_C#_Unicode_Codepages - Fatal编程技术网

C# 如何将项目符号字符打印到控制台?

C# 如何将项目符号字符打印到控制台?,c#,unicode,codepages,C#,Unicode,Codepages,这是我的代码: Console.WriteLine("•"); 或者这个: Console.WriteLine("\u2022"); 结果(在我的计算机上): *嘟嘟声* 预期结果: • 如何使上面的字符出现在我的控制台上 我知道嘟嘟声是从哪里来的,因为子弹被翻译成ASCIIBELL字符。这个问题是在试图了解更多关于代码页437的信息时出现的。您很可能需要将控制台字体更改为支持该字符的字体 查看这篇文章:我刚刚想起一个Windows控制台模式,它不处理ASCII码,如bell和linef

这是我的代码:

Console.WriteLine("•");
或者这个:

Console.WriteLine("\u2022");
结果(在我的计算机上):

*嘟嘟声*

预期结果:

如何使上面的字符出现在我的控制台上



我知道嘟嘟声是从哪里来的,因为子弹被翻译成ASCII
BELL
字符。这个问题是在试图了解更多关于代码页437的信息时出现的。

您很可能需要将控制台字体更改为支持该字符的字体


查看这篇文章:

我刚刚想起一个Windows控制台模式,它不处理ASCII码,如bell和linefeed。我需要这些功能:

[DllImport("kernel32.dll")]
static extern IntPtr GetStdHandle(int handle);

[DllImport("kernel32.dll")]
static extern bool SetConsoleMode(IntPtr handle, int mode);
在尝试写入控制台之前,我会执行以下操作:

SetConsoleMode(GetStdHandle(-11), 2);
这将获取连接到stdout的本机屏幕缓冲区的句柄,并禁用ENABLE_PROCESSED_输出标志

Console.WriteLine("•");
输出:

•♪◙
哎呀,这意味着它不会处理来自
WriteLine
的换行和回车

Console.Write("•");
输出:

•♪◙
宾果

现在,如果我想在打印更多文本之前将控制台恢复到“正常”模式,我可以这样做:

SetConsoleMode(GetStdHandle(-11), 3);

DOS代码页437和850包含字节值的图形字符这似乎比列出的其他选项更容易解决问题。(即使最初提问时没有,现在也可以使用。)


我在想<代码>控制台写入线(“•”)Per可以将控制台设置为使用UTF8,但我还没有对此进行测试。@OSborn我尝试了各种编码(ASCII、Unicode、UTF8、CP437),但都不起作用。等等,不知怎的,原始帖子中的项目符号不见了。直到现在我才注意到。@Kendall Frey看到了Rufus的答案:我链接的页面上有关于控制台字体的注释。我尝试将字体更改为ConsoleAs(在其他程序中可以很好地显示项目符号),但它仍然向我发出嘟嘟声。如果有一种方法可以不用P/Invoke来完成此操作,我很想听。这对我很有用:
Console.outpunecoding=System.Text.Encoding.UTF8有趣的是,这不起作用。它打印
←^和哔哔声,所以它显然将铃声视为一种特殊情况,而不是ESC。这在Windows 10上运行良好,但在发布时我正在运行Windows 7,因此它可能依赖于操作系统。您使用的是什么操作系统?我认为.NET Framework版本比Windows版本更重要。我测试了多个Framework版本,但没有任何区别。