如何将 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);

我从上面得到的是“?????????”

但是,当处于 Debug模式时,我在 autos 和 local 窗口中看到了以下 unicodeString 的值,这是我想要显示的。

“慒䑷瑡彡〵〶ㅟ⸷惯�”

如何将正确的结果打印到控制台,如用于调试的自动和本地窗口所示?

最佳答案

我怀疑这些字节确实在 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);

你会得到输出:

关于C#:如何将 unicode 字符串打印到控制台?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/2638936/

10-11 21:53