Reg*_*Reg 23 .net unicode c#-4.0
我有一个函数将字符串转换为Unicode字符串:
private string UnicodeString(string text)
{
return Encoding.UTF8.GetString(Encoding.ASCII.GetBytes(text));
}
Run Code Online (Sandbox Code Playgroud)
但是当我调用此函数时,输出结果是错误的.看起来我的功能不起作用.
Console.WriteLine(UnicodeString("????? ?????")) 在控制台上打印只是这样的问题: ????? ????
有没有办法说控制台显示它是正确的?
UPDATE
它似乎不是Unicode中的问题.我想也许它显示问号因为我在系统中没有正确的区域设置(Windows 7)?
有没有办法让它在不改变语言环境的情况下工作?
Kob*_*obi 42
首先,将输出编码更改为UTF8:
Console.OutputEncoding = Encoding.UTF8;
Console.WriteLine("????? ?????");
Run Code Online (Sandbox Code Playgroud)
现在你仍然会看到问号.原因是默认控制台的字体不支持西里尔字母.更改控制台的字体:

如果你很幸运,你应该找到一个支持Unicode的不同字体:

更改字体,您应该能够看到您的文字:

在一般情况下,如果要可靠地显示所有Unicode字符,则控制台可能不适合您.另请参阅:C#控制台字体(评论也很有趣)