当我的文字显示为方框时,这意味着什么?

时间:2008-10-20 00:43:59

标签: unicode text fonts

我正在尝试使用(例如)Windows GDI在我的程序中显示一些文本,并且某些unicode字符显示为框?怎么了?

另请参阅:What does it mean when my text is displayed as Question Marks?

5 个答案:

答案 0 :(得分:12)

(来自http://www.cafepress.com/nucleartacos.163046834的T恤图片)

上图显示了未考虑全部Unicode字符的文本显示系统的常见故障模式。在Windows平台上,无法使用任何可用字体表示的字符用开放矩形表示。

答案 1 :(得分:5)

通常,这意味着指定的unicode字符在该特定字体中不可用。尝试将字体更改为其中一个多国字体,它应该消失。

答案 2 :(得分:5)

在Windows中,尝试显示Unicode字符时会出现两个常见的显示问题:

  1. 文字有时会显示为问号

    • 当Unicode数据通常通过系统代码页转换为8位字符集编码(或技术上的多字节字符)时会发生这种情况(但可以在转换调用中指定其他代码页)。如果目标8位字符集未包含所需字符,则目标字符集中无法表示的任何字符都将转换为问号。
  2. 文字有时会显示为方框

    • 对于特定字符没有glpyh的字体,这是一个问题。当文档中的Unicode字符与字体支持的字符不匹配时,框会显示。具体来说,这些框表示所选字体不支持的字符。

答案 3 :(得分:1)

该协议是您尝试显示的文本包含您正在使用的字体不支持的字符。框字符是Unicode文本的默认替换字符,字体中没有字形。

在Windows上,如果您尝试以多种不同语言显示文本,请使用Arial Unicode MS等字体 - 这包括大量不同语言的字形。它是一种“最不常见的分母”字体 - 字形通常会存在,但它通常缺少字符,而且一些字形看起来有点奇怪。

答案 4 :(得分:0)

我在用于Win10的Chrome上有大约2年的相同的框/字符/文本问题,并尝试了所有建议的修复程序,但没有一个对我有用。我的问题是由我未曾考虑过的应用程序引起的。我使用uBlock Origin来缩小弹出广告。默认情况下,uBlock还会“阻止此站点上的远程字体”,实际上是每个站点。当字体被阻止时,Chrome会插入替换其位置的内容,通常是简单的正方形或矩形。如果没有其他效果,请检查您的广告拦截器。可以轻松关闭该功能,然后显示所有正确的文本。