フォントに対応するグリフがないために表示できないUnicode文字を含むテキストがあると仮定します。通常、代わりにプレースホルダーが表示されます。長方形のブロックのもの(スクリーンショットを参照)。
このグリフを確実に生成する「グリフが見つかりません」という文字はありますか? UIに"If the following text contains <insert character here> then you need another font..."
のようなものを書きたいのですが。
ちなみに、私は�( 置換文字 )について話していません。これは、Unicode文字をデータストリームから正しくデコードできなかった場合に表示されます。必ずしも同じグリフを生成するわけではありません。
いいえ、「グリフが見つかりません」という文字はありません。プログラムが異なれば、使用するグラフィック表示も異なります。空の狭い長方形は一般的なレンダリングですが、それだけではありません。また、疑問符が含まれている長方形や、16進数の文字のコード番号が含まれている長方形の場合もあります。
したがって、たとえば読者がそれらを比較できるように、キャラクター自体と一緒にキャラクターの小さな画像を表示します。
Unicode仕様から:
U+25A1
□ホワイトスクエア
欠落している表意文字を表すために使用できます
→U+20DE
$⃞囲んでいる正方形を組み合わせる
グリフが見つからない文字は、フォントエンジンとフォントによって指定されます。決まった文字はありません。
Unicodeは次の用語を使用します。
Unicode標準(10.0)は、それらがどのように見えるかを定義していませんが、5.3章で提案しています[ [〜#〜] pdf [〜#〜] ]実装が表示する
[…]そのタイプの一般的な指標を与える独特のグリフ[…]
それらを「割り当てられていないコードポイント」と区別するため。彼らはいくつかの例を挙げています:
Unicode 用語集のエントリによると :
多くの場合、開いた長方形または黒い長方形として表示されます。
tl; dr:標準化された外観/グリフはありません。実装次第です。ユーザーを支援するために、実装では、表示できない文字の種類を示すグリフを表示できます。
U + 10FFFF(Unicodeスペースの最後)のような文字以外を使用します。これは、正常なフォントのcmapテーブルにないことが99.99%確実です。少なくとも、その文字以外のフォントをグリフにマップする既知のWindowsシステムフォントはなく、Linux/Macシステムフォントもほとんどありません。すべてを網羅するLastResortフォント( http://www.unicode.org/policies/lastresortfont_eula.html )でさえ、それをマップしているようには見えません。したがって、.notdefグリフにマップされるUnicodeで定義された公式の「グリフが見つかりません」文字はありませんが、上記の非文字は、その特定のフォントのグリフデザインに関係なく、実際にはそのグリフを表示することが保証されています。 .notdefグリフ(OpenTypeのグリフID 0)は、単純な中空の長方形(標準)、xの付いたボックス、疑問符の付いたボックス、ときどき空白(これは悪い習慣です)、スパイラルのような奇妙なもの(Palatino Linotype)の場合があります。 。
グリフが見つからないことを意味するnotdef文字があります。ただし、文字コードはありません。制御文字の文字コードを使用して、notdef文字( ""、U + 0002など)を挿入できます。
グリフが見つからない可能性のある文字は3つあります。
Microsoft仕様、トピック。notdefグリフの形状、 https://docs.Microsoft.com/en-us/typography/ opentype/otspec170/recom#shape-of-notdef-glyph