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

标签 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);

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

但是,当处于 Debug模式时,我在自动和本地窗口中看到以下内容,因为我想显示 unicodeString 的值。

“奢侈 Jade 仪〵ㅟ⸷厌�”

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

最佳答案

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

你会得到输出:

application/pcap

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

相关文章:

python - 如何连接多个unicode字符串?

java - Python 2 和 Java 1.6 之间的 BadPaddingException AES 128 CBC

c# - 如何在不丢失数据的情况下重命名 Entity Framework 5 Code First 迁移中的数据库列?

c# - Reflection.Emit:AssemblyBuilder.SetEntryPoint 未设置入口点

objective-c - Objective C 中 unicode 字符的数值

language-agnostic - 重新实现 ToUpper()

c# - asp.net 中的 CheckBox 控件 (C#)

c# - 在 C# 中键入右大括号后,如何自动将光标定位在方法大括号之间?

当尝试使用日语编码调用 wget 时,Python 表现得很奇怪

maven - 编码器类 (org.owasp.esapi.reference.DefaultEncoder) CTOR 抛出异常