C#: How to print a unicode string to console?
17,612
Solution 1
I suspect these bytes are really in UTF8
, not in UTF16
as you supposed.
See, if you change your code to:
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);
You'll get the output:
application/pcap
Solution 2
Please see the following answer: c# unicode string output
In short:
Console.OutputEncoding = Encoding.UTF8;
Then change the console font to Lucida Console, which supports unicode characters.
Author by
Lopper
Updated on June 04, 2022Comments
-
Lopper almost 2 years
How do I print out the value of a unicode
String
in C# to the console?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);
What I get for the above is "?????????"
However, I see the following in the autos and local window when in debug mode for the value of unicodeString which is what I wanted to display.
"慒䑷瑡彡〵〶ㅟ⸷慣�"
How do I print out the correct result to the console as what the autos and local window for debugging demonstrated?