setuicculture()的这段代码是做什么的?
本文关键字:什么 段代码 setuicculture 代码 | 更新日期: 2023-09-27 18:14:29
假设我想让我的程序在世界上任何一台电脑上都能正常运行。
我不知道这需要多少工作,但我认为使用控制台应用程序更容易,所以我开始反编译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在做什么?
这是否能够有效地国际化主机应用?
0xfde9编码页为UTF-8。因此,代码表示,如果代码页不是UTF8、OEM或ANSI,则将区域性设置为美式英语。
现在,你的应用程序应该正常工作,假设你的应用程序需要的。net框架的版本存在,但问题是最终用户是否能够理解你的应用程序试图告诉他们什么。