数字の図形
アラビア語やその他の多くの言語には、コンピューターで最もよく使用される従来の西桁とは異なる数字の古典的な形があります。 これらの図形の名前付けにあいまいさを避けるために、このドキュメントでは Unicode 標準の次の名前を使用します。
数字の Unicode 名 | 使用されている国/地域 |
---|---|
ヨーロッパの数字 | ヨーロッパ、アメリカ、その他多くの国/地域 |
Arabic-Indic 桁 | アラビア語の国/地域 (多くはヨーロッパの数字を使用します) |
その他の国番号: インド数字、タイ語の数字など | さまざまな国/地域 |
Unicode では、数字の図形ごとに個別のコード ポイントが提供されます。 したがって、特別な言語の数字の図形にアクセスするために、アプリケーションでは、上記の数字に関連する Unicode 文字コード (U+0030 から U+0039) を使用できます。 これらのコードは、フォントの使用状況に応じて、常に適切な図形で表示されます。
Unicode 文字コード U+0030 から U+0039 は、0 ~ 9 のヨーロッパ数字を表しますが、数字の形は変更できます。 GDI および DirectWrite テキスト API は、アプリケーションがこの動作を制御するためのメカニズムを提供します。 (例: ScriptApplyDigitSubstitution または IDWriteTextAnalysisSink::SetNumberSubstitutionを参照)。一部のシェル コントロールとユーザー インターフェイス フレームワークの動作は、数字置換のユーザー ロケール設定に応答する場合があります。LOCALE_IDIGITSUBSTITUTION LCTYPE を使用して、異なるロケールの既定の桁置換設定または現在のユーザーのデスクトップ設定の桁置換を取得できます。
ネイティブ数字
ネイティブ数字は、コントロール パネルの地域と言語オプションの部分の 番号 プロパティ シートでユーザーが選択した数字の図形です。 ユーザーが優先する数字の表示を見つけるには、アプリケーションで、ロケール情報を表す LOCALE_SNATIVEDIGITS 定数を使用して、getLocaleInfoまたは GetLocaleInfoEx関数を使用します。
手記
通常、Unicode 数字コードはランタイム オペレーティング システム ルーチンで生成されます。 そのため、アプリケーションが LOCALE_SNATIVEDIGITS を適切に検査するには、一般的なランタイム オペレーティング システムをアップグレードする必要があります。
桁置換
アプリケーションでは、数字の置換を使用して、オペレーティング システムに数字 U+0030 から U+0039 までの印刷方法を指示できます。 LOCALE_IDIGITSUBSTITUTION 定数は、この操作を制御します。
1 つの関数のディジット シェイプ
ExtTextOut、GetCharacterPlacement、および GCP_RESULTS 関数には、関数呼び出し中の Unicode コード U+0030 から U+0039 への置換を制御するフラグがあります。 これらのフラグは、コントロール パネルの地域設定をオーバーライドしますが、設定はリセットしません。 また、Unicode コード NADS と NODS はオーバーライドされません。 次のフラグを使用できます。
フラグ | 使用される数字 | で使用されます |
---|---|---|
ETO_NUMERICSLATIN | ヨーロッパの数字 | ExtTextOut を する |
ETO_NUMERICSLOCAL | ロケールに適した数字 | ExtTextOut を する |
GCP_NUMERICSLATIN | ヨーロッパの数字 | GetCharacterPlacement の |
GCP_NUMERICSLOCAL | ロケールに適した数字 | GetCharacterPlacement の |
GCPCLASS_LATINNUMBER | ヨーロッパの数字 | GCP_RESULTS |
GCPCLASS_LOCALNUMBER | ロケールに適した数字 | GCP_RESULTS |
関連トピック