(たとえば)Windows GDIを使用してプログラムにテキストを表示しようとしていますが、Unicode文字の一部がボックスとして表示されますか?何が起こってる?
5 に答える
( http://www.cafepress.com/nucleartacos.163046834のTシャツ画像)
上の画像は、Unicode文字の全範囲を考慮に入れていないテキストディスプレイシステムの一般的な障害モードを表しています。Windowsプラットフォームでは、使用可能なフォントを使用して表現できない文字は、開いた長方形で表されます。
通常、これは、指定されたUnicode文字がその特定のフォントで使用できないことを意味します。フォントを多国籍のものに変更してみてください。消えるはずです。
Windows では、Unicode 文字を表示しようとしたときに発生する一般的な表示上の問題が 2 つあります。
テキストがクエスチョン マークとして表示されることがある
- これは、Unicode データが 8 ビット文字セット エンコーディング (または技術的にはマルチバイト文字) に変換されるときに、通常はシステム コードページを介して発生します (ただし、変換呼び出しで他のコード ページを指定することもできます)。ターゲットの 8 ビット文字セットに必要な文字が含まれていない場合、ターゲットの文字セットで表現できない文字は疑問符に変換されます。
テキストがボックスとして表示されることがある
- これは、特定の文字の glpyh を持たないフォントの問題です。ドキュメント内の Unicode 文字とフォントでサポートされている文字との間に不一致がある場合、ボックスが表示されます。具体的には、ボックスは、選択したフォントでサポートされていない文字を表しています。
取引では、表示しようとしているテキストに、使用しているフォントでサポートされていない文字が含まれています。ボックス文字は、フォントにグリフが含まれていないUnicodeテキストのデフォルトの置換文字です。
Windowsで、さまざまな言語でテキストを表示しようとしている場合は、Arial Unicode MSなどのフォントを使用します。これには、さまざまな言語のグリフが含まれます。これは「最小公分母」フォントです。グリフは通常そこにありますが、一般的に文字が不足しており、一部のグリフは隣り合って少し奇妙に見えます。