C#:如何将unicode字符串打印到控制台?

时间:2010-04-14 15:54:59

标签: c# unicode encoding console

如何在C#中将unicode String的值打印到控制台?

byte[] unicodeBytes = new byte[] 
    {0x61, 0x70, 0x70, 0x6C, 0x69, 0x63, 0x61, 
     0x74, 0x69, 0x6F, 0x6E, 0x2F, 0x70, 0x63, 
     0x61, 0x70};

string unicodeString = Encoding.Unicode.GetString(unicodeBytes);

Console.WriteLine(unicodeString);

我得到的是“?????????”

但是,在调试模式下,我在autic和本地窗口中看到unicodeString的值,这是我想要显示的内容。

“慒䑷瑡彡〵〶ㅟ⸷惯”

如何在调试的autos和本地窗口中显示正确的结果?

2 个答案:

答案 0 :(得分:3)

我怀疑这些字节确实在UTF8,而不是UTF16

如果您将代码更改为:

,请参阅
byte[] unicodeBytes = new byte[] 
    {0x61, 0x70, 0x70, 0x6C, 0x69, 0x63, 0x61, 
     0x74, 0x69, 0x6F, 0x6E, 0x2F, 0x70, 0x63, 
     0x61, 0x70};

string unicodeString = Encoding.UTF8.GetString(unicodeBytes);

Console.WriteLine(unicodeString);

你会得到输出:

  

应用/ PCAP

答案 1 :(得分:1)

请看以下答案: c# unicode string output

简而言之:

Console.OutputEncoding = Encoding.UTF8;

然后将控制台字体更改为Lucida Console,它支持unicode字符。