【问题标题】:Getting Language for Non-Unicode Programs获取非 Unicode 程序的语言
【发布时间】:2017-09-24 03:17:58
【问题描述】:

有人知道如何使用 c# 以编程方式在控制面板区域设置中获取“非 Unicode 程序语言”的值吗?

已经尝试过 CultureInfo、RegionInfo 和使用 Encoding 对象获取默认编码,但我只能获取 Standards and Formats 值或主代码页。

【问题讨论】:

    标签: c#


    【解决方案1】:

    【讨论】:

    • 链接没有损坏。它指向一个页面,该页面显示内容已被移动,并具有指向新位置的链接。无论如何,更新了链接。
    • 是否有 API 可以更改“非 Unicode 程序的语言”?
    【解决方案2】:

    Windows 应用程序国际化 中的NLS Terminology 页面给出了答案:

    ANSI 应用程序应在安装期间检查非 Unicode 程序设置的语言。它使用 GetACPGetOEMCP 来检索值。不支持为非Unicode程序设置语言的功能。

    GetACP 函数返回 "ANSI code page"(例如 1252 表示英语),而 GetOEMCP 返回“OEM 代码页”(控制台中使用的代码页,437 表示英语)。

    Code Pages 有更多关于 Windows 代码页的信息。

    【讨论】:

    • 是否有 API 可以更改“非 Unicode 程序的语言”,例如 SetACP()?
    • 如果您认为“不支持为非 Unicode 程序设置语言的功能”,则不会。声明:)如果你真的想找到一种方法,你至少应该问一个单独的问题。
    【解决方案3】:

    IIRC,Thread.CurrentUICulture 获取该值。

    【讨论】:

      猜你喜欢
      • 2011-09-13
      • 2011-08-26
      • 2011-10-03
      • 1970-01-01
      • 2017-03-05
      • 2016-04-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多