如何在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和本地窗口中显示正确的结果?
答案 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字符。