我想知道在控制台应用程序中是否可以使用.NET编写像℃
这样的字符。当我尝试写这个字符时,控制台会输出一个问号。
答案 0 :(得分:166)
您的输出编码可能设置为ASCII。在发送输出之前尝试使用它:
Console.OutputEncoding = System.Text.Encoding.UTF8;
(MSDN link支持文档。)
这里有一个方便的控制台测试应用程序:
<强> 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
您选择的Console字体也可能不支持该特定字符。单击Windows工具栏菜单(图标如C:。)并选择属性 - &gt;字体。尝试其他一些字体,看看它们是否正确显示了你的角色:
答案 1 :(得分:8)
我在MSDN上找到了一些优雅的解决方案
System.Console.Write('\uXXXX') //XXXX is hex Unicode for character
这个简单的程序在屏幕上正确写入。
using System;
public class Test
{
public static void Main()
{
Console.Write('\u2103'); //℃ character code
}
}
答案 2 :(得分:7)
Console.OutputEncoding属性
http://msdn.microsoft.com/library/system.console.outputencoding(v=vs.110).aspx
请注意,成功向控制台显示Unicode字符需要以下内容:
答案 3 :(得分:1)
除了Console.OutputEncoding = System.Text.Encoding.UTF8;
对于某些字符,您需要安装其他字体(即中文)。
在 Windows 10 中,首先转到 区域和语言设置 ,并安装所需语言的支持:
此后,您可以转到 命令提示符属性(如果需要,可以输入默认值) ,然后选择一些支持您的语言的字体(例如 KaiTi (在中文情况下):
答案 4 :(得分:1)
这对我有用:
Console.OutputEncoding = System.Text.Encoding.Default;
要显示某些符号,需要将命令提示符的字体设置为Lucida Console:
打开命令提示符;
右键单击命令提示符顶部的栏;
点击属性;
如果将字体设置为“光栅字体”,请将其更改为Lucida Console。