8

*nix システムlocale -aでは、利用可能なロケールのリストを取得できます。

Windows で同等のコマンド (またはアクション) は何ですか?

インターネットでリストを見たことがありますが、それらのほとんどは単なるロケール ラベルであり、実際のロケール名ではありません。さらに、すべてのシステムにそれらすべてがインストールされていることが保証されているわけではありませんよね?

ここでの "locale" の定義は "locale string" であることに注意してください。つまり、setlocale()NULL 以外の戻り値になる C の 2 番目のパラメーターです。

プログラムによる回答も問題ありません。Windows のロケール名を推測する力ずくのやり方にうんざりしています。

4

2 に答える 2

6

最初は、情報を取得するためのC /Win32APIが見つかりませんでした。(後の編集を参照してください。)ただし、.NETクラスSystem.Globalization.CultureInfoが必要な情報を提供できるようです。特に、CultureInfo.GetCultures()を参照してください。このページには、あなたが探しているものの完全な例があるようです。

編集:C / Win32 APIを使用する場合は、EnumSystemLocales()関数を参照してください。

編集2:この例は、LCID(EnumSystemLocales()から取得)をsetlocale()で使用可能な文字列に変換する方法を示しています。

于 2011-03-01T10:58:50.463 に答える
2

このページには、WIN32 setlocaleが認識する言語と国/地域のリストへのリンクが含まれているようです。でも:

使用可能な言語、国/地域コード、およびコード ページのセットには、UTF-7 や UTF-8 など、1 文字あたり 2 バイト以上を必要とするコード ページを除き、Win32 NLS API でサポートされているすべてのものが含まれます。UTF-7 や UTF-8 などのコード ページを指定すると、setlocale は失敗し、NULL が返されます。

不合格。

于 2011-03-01T11:39:15.267 に答える