在 C# 的控制台窗口中输出 Unicode 字符

3 unicode console

我的应用程序生成波斯文本并将其作为未知代码显示在控制台窗口中!如何在控制台的应用程序输出中包含 Unicode 文本?我曾经使用下面的代码,但它不能正常工作!

Console.InputEncoding = Encoding.UTF8;
Run Code Online (Sandbox Code Playgroud)

Joe*_*oey 5

如果您希望输出正确显示,您应该设置输出编码:

public class Test {
    static void Main() {
        System.Console.OutputEncoding = System.Text.Encoding.UTF8;
        System.Console.WriteLine("?????");
    }
}
Run Code Online (Sandbox Code Playgroud)

对我有用(是的,即使 Windows 控制台使用 UTF-16,您也必须设置 UTF-8;我不知道为什么)。

C:\>test.exe
?????
Run Code Online (Sandbox Code Playgroud)

请注意,控制台可能会显示?????在这种情况下您需要将控制台字体设置为 TrueType 字体(例如 Consolas 或 Lucida Console),否则控制台会尝试将所有内容转换为 OEM 字符集,并且无法转换的字符将成为问号。之后控制台仍然没有显示波斯语,因为没有复杂的脚本渲染支持,但你可以复制/粘贴它就好了。


Cre*_*hal -1

据我所知,Windows内部使用UCS-2。您是否尝试过将文本转换为这种编码?