数字の図形

アラビア語や他の多くの言語は、コンピューターで最もよく使用される従来の西桁とは異なる数字の古典的な形をしています。 これらの図形に名前を付ける際にあいまいさを回避するために、このドキュメントでは 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 を使用して、異なるロケールの既定の桁置換設定または現在のユーザーのデスクトップ設定で数字の置換を取得できます。

ネイティブ数字

ネイティブ数字は、コントロール パネルの地域と言語のオプション部分の Number プロパティ シートでユーザーが選択した数字の図形です。 ユーザーが優先する数字の表示を見つけるために、アプリケーションでは、ロケール情報を表す LOCALE_SNATIVEDIGITS 定数を使用して GetLocaleInfo または GetLocaleInfoEx 関数を使用します。

注意

通常、Unicode 桁コードはランタイム オペレーティング システム ルーチンで生成されます。 そのため、アプリケーション がLOCALE_SNATIVEDIGITSを 適切に検査するには、一般的なランタイム オペレーティング システムをアップグレードする必要があります。

 

桁の置換

アプリケーションでは、数字の置換を使用して、U+0030 から U+0039 までの数字を印刷する方法をオペレーティング システムに指示できます。 LOCALE_IDIGITSUBSTITUTION定数は、この操作を制御します。

1 つの関数のディジット シェイプ

ExtTextOutGetCharacterPlacementおよび GCP_RESULTS 関数には、関数呼び出し中の Unicode コード U+0030 から U+0039 への置換を制御するフラグがあります。 これらのフラグは、コントロール パネルの地域設定をオーバーライドしますが、設定をリセットしません。 また、Unicode コード NADS と NODS はオーバーライドされません。 次のフラグを使用できます。

Flags 使用される数字 使用される場所
ETO_NUMERICSLATIN ヨーロッパ数字 ExtTextOut
ETO_NUMERICSLOCAL ロケールに適した数字 ExtTextOut
GCP_NUMERICSLATIN ヨーロッパ数字 GetCharacterPlacement
GCP_NUMERICSLOCAL ロケールに適した数字 GetCharacterPlacement
GCPCLASS_LATINNUMBER ヨーロッパ数字 GCP_RESULTS
GCPCLASS_LOCALNUMBER ロケールに適した数字 GCP_RESULTS

 

各国語サポートについて

GetLocaleInfo

GetLocaleInfoEx