« GetFontUnicodeRanges | トップページ | PDFとDBXInspector »

2006年12月31日 (日)

システムロケール、ユーザーロケールetc

話の内容に一貫性がないが、そういえば、ちょっとWindowsロケール周りについて色々読んでみた。ロケールって言ってもWindowsには、システムロケール・ユーザーロケールやらスレッドロケールやら色々あり、ややこしく頭を痛めていたが、システムロケールについて一言。「システム」という名前が付くぐらいだから、何かしら重要な設定なんだと思ったが、どうも違うらしい。

Windowsは非Unicodeウィンドウに対して送信される文字関連のメッセージに含まれる文字の文字コードを自動的に変換するが、システムロケールはただ単純にこの変換で使用するコードページ(変換テーブル)を決めるだけのものらしい。つまり、RegisterClassExWなどで登録されたウィンドウを使用するUnicodeに対応したアプリには全く影響を与えない。

それなのに、「システム」ロケールである。ちょっと、紛らわしいと思ったら、最新のMSDNのドキュメントでは呼び名がLanguage for non-Unicode programsになってました。気づきませんでした。ユーザーロケール。これは、ユーザー毎に設定できて、通貨の記号や、日付・時刻の表示に使用する書式などを決めるものであるが、これもStandards and formatsになっている。これで、こんがらなくてすむ。

システムロケールは一度に一つの値しか設定できないが、非Unicodeアプリに対して、アプリ毎に使用するコードページを指定できるWindowsXP用のAppLocale UtilityなんてソフトがMicrosoftから出ていたりもする。

まぁ、いずれにしよ、今後ますます、Unicodeアプリが出てくると思われるので、システムロケールの事は忘れ去れる予感がする。

« GetFontUnicodeRanges | トップページ | PDFとDBXInspector »

Windows」カテゴリの記事

コメント

コメントを書く

(ウェブ上には掲載しません)

トラックバック

この記事のトラックバックURL:
http://app.f.cocolog-nifty.com/t/trackback/1497665/39651918

この記事へのトラックバック一覧です: システムロケール、ユーザーロケールetc:

« GetFontUnicodeRanges | トップページ | PDFとDBXInspector »

自作ソフトウェア

無料ブログはココログ

メモ