代码之家  ›  专栏  ›  技术社区  ›  1800 INFORMATION

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

  •  2
  • 1800 INFORMATION  · 技术社区  · 17 年前

    我试图在我的程序中使用(比如)WindowsGDI显示一些文本,一些unicode字符显示为方框?怎么了?

    What does it mean when my text is displayed as Question Marks?

    4 回复  |  直到 9 年前
        1
  •  15
  •   Greg Hewgill    13 年前

    (t恤图片来源于 http://www.cafepress.com/nucleartacos.163046834

    上图显示了文本显示系统的一种常见故障模式,它没有考虑到Unicode字符的完整范围。在Windows平台上,无法使用任何可用字体表示的字符用开放矩形表示。

        2
  •  6
  •   Tim Howland    17 年前

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

        3
  •  5
  •   Michael Burr    17 年前

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

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

        4
  •  1
  •   1800 INFORMATION    17 年前

    交易是,您试图显示的文本包含您使用的字体不支持的字符。框字符是Unicode文本的默认替换字符,该文本的字体中没有字形。

    在Windows上,如果您试图以一系列不同的语言显示文本,请使用诸如Arial Unicode MS之类的字体-这包括大量不同语言的字形。这是一种“最小公分母”字体-字形通常会在那里,但它通常缺少字符,并且一些字形彼此相邻时看起来有点奇怪。

        5
  •  0
  •   Jim    6 年前