2011-01-12 13 views
3

C#を使って、Fontがサポートする文字エンコードを取得する方法はありますか?フォントがプログラム可能な文字エンコーディングを取得するには?

+0

フォントとエンコーディングは完全に直交しています。 1つのフォントを複数のエンコーディングで使用できます.1つのエンコーディングで複数のフォントを使用できます。それらの間には1対1の関係はありません。 –

答えて

0

短い答え:ネットの世界ではありません

、コードページはありません。すべてがUnicodeで行われます。

フォントは、Unicodeコードポイントのサブセット(32ビット整数)にマップされたグリフ(文字のグラフィック表現)の集まりです。

CLR文字列は、System.Char(符号なし16ビット整数)のUTF-16でエンコードされたリストです。つまり、特定のUnicodeコードポイント(0x00000080以上)は、UTF-16に従って計算された16ビット文字のペアとしてストリング内に表されます。内部的に[1]、文字列はUTF-16からUTF-32に変換され、現在の32ビット文字は適切なグリフを検索するために使用されます。

[1]論理的には、とにかく。実際の実装の詳細が何であるか分かりません。

+0

文字の1:1マッピングはありません:グリフ、特にユニコードではありません。合字を考えてみましょう(1つのglpyhは* ffi *のように、2〜3文字の特定の集合+順序を表します)。 –

+0

Wikipediaを引用するには、 "*書面とタイポグラフィでは、2つ以上の*書記体*が単一の*グリフ*として結合されているところで合字が発生します。*"(書記句の基本単位である書体 - 合字では、個々の字体の形は文脈に依存しています。詳細はhttp://en.wikipedia.org/wiki/Typographic_ligatureをご覧ください。しかし、私はこの質問の目的のために、文字とグリフの違いはむしろ賢明だと主張します。 –

関連する問題