在* nix系統上,您可以執行locale -a
以獲取可用區域設置的列表。Windows中的區域設置列表
Windows中的等效命令(或動作)是什麼?
我在互聯網上看過列表,但其中大多數只是區域設置標籤,而不是實際的區域設置名稱。另外,並非所有系統都能保證全部安裝,對嗎?
請注意,我在此定義的「語言環境」是「語言環境字符串」,即C的setlocale()
的第二個參數,這將導致非空返回值。
程序化的答案也很好,我只是厭倦了蠻力猜測Windows語言環境名稱。
在* nix系統上,您可以執行locale -a
以獲取可用區域設置的列表。Windows中的區域設置列表
Windows中的等效命令(或動作)是什麼?
我在互聯網上看過列表,但其中大多數只是區域設置標籤,而不是實際的區域設置名稱。另外,並非所有系統都能保證全部安裝,對嗎?
請注意,我在此定義的「語言環境」是「語言環境字符串」,即C的setlocale()
的第二個參數,這將導致非空返回值。
程序化的答案也很好,我只是厭倦了蠻力猜測Windows語言環境名稱。
最初,我找不到C/Win32 API來獲取信息。 (見後面的編輯。)但是,它看起來像.NET類System.Globalization.CultureInfo可以提供您需要的信息。具體請參閱CultureInfo.GetCultures()。這個網頁似乎有一個complete example你正在尋找。
編輯:如果您更喜歡C/Win32 API,請參閱EnumSystemLocales()函數以及簡單的example code。
編輯2:This example顯示如何將LCID(從EnumSystemLocales()獲得)轉換爲可由setlocale()使用的字符串。
那裏有非常好的語言環境信息,但仍然沒有可由setlocale()使用的語言環境字符串。 – aib 2011-03-01 11:48:55
嘗試枚舉現在... – aib 2011-03-01 11:49:19
[last]示例是一個開始,但我想知道它如何處理具有多個代碼頁的語言環境(更不用說語言或國家/地區)。看起來它只會提取默認的ANSI代碼頁或默認代碼頁(如果它不存在)。似乎也有默認的EBCDIC和MAC代碼頁面。並不重要;我得到了我的答案:沒有這樣的效用存在;必須仔細閱讀糟糕的NLS文檔,並以編程方式生成並消除語言環境名稱。 – aib 2011-03-01 12:25:46