我的应用程序生成波斯语文本并在控制台窗口中显示为未知代码! 如何在我的应用程序输出中使用Unicode文本? 我曾经使用以下代码,但它不能正常工作!
Console.InputEncoding = Encoding.UTF8;
如果您希望输出正确显示,您应该设置输出编码:
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字符集,并且无法转换的字符会变成问号。之后,控制台仍然不支持波斯语文字的复杂脚本渲染,但您可以完全复制/粘贴它。