2012-12-05 15 views
18

フォントに対応するグリフがないため、表示できないUnicode文字を含むテキストがあるとします。通常は代わりにプレースホルダが表示されます。矩形ブロックのものです(スクリーンショット参照)。「グリフが見つかりません」という文字はありますか?

このグリフを確実に生成する「グリフが見つかりません」という文字はありますか?私は"If the following text contains <insert character here> then you need another font..."のようなものをUIに書いています。

ところで、私は (replacement character)について話していません。これは、Unicode文字をデータストリームから正しくデコードできなかった場合に表示されます。それは必ずしも同じグリフを生成しません:

enter image description here

+0

矩形**は「グリフが見つかりません」グリフです。助けてください。 –

答えて

7

いいえ、「グリフが見つかりません」という文字はありません。異なるプログラムは、異なるグラフィックプレゼンテーションを使用します。空の細い矩形は一般的なレンダリングですが、唯一のレンダリングではありません。疑問符が付いた矩形でも、文字のコード番号(16進数)でも構いません。

文字自体の小さな画像を表示して、読者が比較できるようにする。

+0

いくつかのAndroid搭載端末では、グリフが欠落しているのは、わずか数ピクセルの空き領域だけです。それで、それは目に見えるものである必要はありません。 – nibarius

3

グリフ-見つからない文字がフォントエンジンによって、およびフォントによって指定されます。そのための固定文字はありません。

+0

置換文字に関するものではなく、置換文字U + FFFD *は固定文字です(固定されたグリフはありませんが、それを含むフォントは非常に似たグリフを使用する傾向があります)。 –

+0

@Jukka:私はU + FFFDについて話しているわけではありません。 –

+1

それで、a)全く文字ではなく、b)ユニコード名の文字ではなく、c)人がこのような問題で簡単に混乱するので、 "置換文字"というフレーズを使用しないでください。 –

2

U + 10FFFF(Unicode領域の最後にある)のような非文字を使用してください。これは99.99%ですが、正気なフォントのcmapテーブルでは検出されません。少なくとも知られているWindowsシステムフォントは、その文字をグリフにマッピングし、Linux/Macシステムフォントもほとんどないでしょう。ラストリゾートのフォント(http://www.unicode.org/policies/lastresortfont_eula.html)を含むすべてのフォントがマップされていません。したがって、.notdefグリフにマップされるUnicodeで定義された正式な "グリフが見つかりません"文字はありませんが、上記の文字以外の文字はグリフのデザインがその特定のフォントにあるものであればそのグリフを表示することが実際に保証されています。 .notdefグリフ(OpenTypeのグリフID 0)は単純な中空の矩形(標準)、xのボックス、疑問符の付いたボックス、時折空白(悪い習慣)、時にはスパイラルのような奇妙なもの(Palatino Linotype) 。ユニコード仕様から

10

U+25A1□白四角

  • が欠落している表意文字を表すために使用されてもよい

  • U+20DE $⃞組み合わせ囲む平方また

+0

あなたの編集をJukka K. Korpelaの答えにロールバックしました。この情報にこの情報を含めるか、他の回答にコメントを追加してください。 –

+0

ここに情報を含めてこの回答を削除してみませんか? – Michaelangel007

+0

良い答え。 – martin

0

がための3つの可能な文字があります。グリフが見つかりません。

Microsoftの仕様、トピックをチェックインしてください。

  • 代替グリフ
  • 欠落しているグリフ
  • 解釈が、レンダリング不可能な文字

Unicode標準(10.0)はありません:グリフ、notdef https://www.microsoft.com/typography/otspec160/recom.htm

0

Unicodeはこれらの用語を使用していますどのように見なければならないのかを定義していないが、c第章5.3 [PDF】実装表示

それらのタイプのいくつかの一般的な指示を与える[...]独特なグリフ[...]

"が割り当てられていないコードポイント" からそれらを区別すること。彼らは、いくつかの例を与える:

glossary entry says

ユニコード:

それはしばしば開放または黒い長方形として示されています。


TL; DRは:標準化見た目/グリフはありませんが、それは実装次第です。ユーザーを助けるために、実装では、表示できない文字の種類を示すグリフが表示されます。

関連する問題