如何在控制台中写入Unicode字符?
如何在控制台中写入Unicode字符?
我在想,在控制台应用程序中是否有可能使用.NET写入像℃
这样的字符。当我尝试写入这个字符时,控制台会输出一个问号。
admin 更改状态以发布 2023年5月23日
很有可能您的输出编码设置为ASCII。尝试在发送输出之前使用以下内容:
Console.OutputEncoding = System.Text.Encoding.UTF8;
(MSDN有相关文档,请参见链接。)
这里还有一个小的控制台测试应用程序,您可能会觉得非常方便:
C#
using System; using System.Text; public static class ConsoleOutputTest { public static void Main() { Console.OutputEncoding = System.Text.Encoding.UTF8; for (var i = 0; i <= 1000; i++) { Console.Write(Strings.ChrW(i)); if (i % 50 == 0) { // break every 50 chars Console.WriteLine(); } } Console.ReadKey(); } }
VB.NET
imports Microsoft.VisualBasic imports System public module ConsoleOutputTest Sub Main() Console.OutputEncoding = System.Text.Encoding.UTF8 dim i as integer for i = 0 to 1000 Console.Write(ChrW(i)) if i mod 50 = 0 'break every 50 chars Console.WriteLine() end if next Console.ReadKey() End Sub end module
还有可能是您选择的控制台字体不支持该特定字符。点击Windows工具栏菜单(类似于C:.的图标),然后选择属性-字体。尝试选择其他字体,以查看它们是否正确地显示您的字符: