说我想让我的程序在世界上任何人的计算机上正常工作。
我不知道这需要多少工作,但我认为使用控制台应用程序更容易,所以我开始反编译MSTest.exe入口点并找到:
private static void SetUICulture()
{
Thread.CurrentThread.CurrentUICulture =
CultureInfo.CurrentUICulture.GetConsoleFallbackUICulture();
if (
(
(Console.OutputEncoding.CodePage != 0xfde9) &&
(Console.OutputEncoding.CodePage !=
Thread.CurrentThread.CurrentUICulture.TextInfo.OEMCodePage)
) &&
(Console.OutputEncoding.CodePage !=
Thread.CurrentThread.CurrentUICulture.TextInfo.ANSICodePage)
)
{
Thread.CurrentThread.CurrentUICulture = new CultureInfo("en-US");
}
}
看起来这里的目的是看看“后备”文化,然后看一些会阻止它“足够好”的条件,如果是这样的话,就把它设置为英语。
0xfde9在做什么?
这是否有效地使控制台应用程序国际化?
答案 0 :(得分:0)
0xfde9代码页是UTF-8。所以代码说,如果代码页不是UTF8,OEM或ANSI,那么将文化设置为美国英语。
现在,假设存在您的应用程序所需的.Net Framework版本,您的应用程序应该正常工作,但问题是最终用户是否能够理解您的应用程序试图告诉他们的内容。