3

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

Console.InputEncoding = Encoding.UTF8;
4

2 回答 2

5

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

public class Test {
    static void Main() {
        System.Console.OutputEncoding = System.Text.Encoding.UTF8;
        System.Console.WriteLine("پارسی");
    }
}

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

C:\>test.exe
پارسی

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

于 2012-07-05T14:05:59.127 回答
-1

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

于 2012-07-05T13:56:23.943 回答