« T2FAnalyzer1.1.0リリース | トップページ | MLang(Multilingual Language) »

2008年10月 8日 (水)

コードページの続き(3)・・・コードページの列挙(EnumSystemCodePages)

以前といっても1年以上前にコードページに関する事を書いたが(ここここ)、今回はコードページの列挙について。EnumSystemCodePages関数で、システムにインストールされているコードページまたはシステムによってサポートされているコードページを列挙できる。このEnumSystemCodePages関数の使い方は他の列挙する関数ど同様、アプリケーション定義のコールバック関数のポインタを引数に取る。詳細は簡単なのでSDKを参照

ということで、以前の記事で作ったプログラムを改造してEnumSystemCodePages関数を使ってコードページを列挙してみる。Windows2000上でサポートされているコードページを列挙(CP_SUPPORTED)した結果は次の通り。

Enumsystemcodepages1

133個のコードページが列挙された。これと「コントロールパネル」->「地域のオプション」->「システムの言語設定」->「詳細」で表示される「地域の詳細オプション」ダイアログに列挙されるコードページ変換テーブルの一覧と比較したのだが、微妙に違っているorz・・・

Enumsystemcodepages2

まぁ、ここでは余り深く考えるのはやめて、次に列挙されたコードページ識別子(Code Page Identifier)に対応する文字セット識別子(Charset Identifer)をTranslateCharsetInfo関数を使って求めてみる。文字セット識別子は例えば、CreateFont関数で論理フォントを作成する時にLOGFONT.lfCharsetフィールドに指定するやつです。

実行結果は次のとおり。

Enumsystemcodepages3

上の画像より例えば、日本語のシフトJISを表すコードページ932に対応する文字セットは128のSHIFTJIS_CHARSETであることが分かる。

以上。

些細なプログラムであるが作ったプログラムはここ

« T2FAnalyzer1.1.0リリース | トップページ | MLang(Multilingual Language) »

Windows」カテゴリの記事

コメント

コメントを書く

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

トラックバック

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

この記事へのトラックバック一覧です: コードページの続き(3)・・・コードページの列挙(EnumSystemCodePages):

« T2FAnalyzer1.1.0リリース | トップページ | MLang(Multilingual Language) »

自作ソフトウェア

無料ブログはココログ

メモ