【问题标题】:What does it mean when my text is displayed as boxes?当我的文本显示为框时是什么意思?
【发布时间】:2010-09-18 01:11:11
【问题描述】:

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

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

【问题讨论】:

    标签: unicode text fonts


    【解决方案1】:

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

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

    【讨论】:

    • 你有没有机会用文字答案来扩展这个答案?那件 Cafe Press 的 T 恤有一天可能会消失。谢谢。
    【解决方案2】:

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

    【讨论】:

      【解决方案3】:

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

      1. 文本有时显示为问号

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

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

      【讨论】:

        【解决方案4】:

        问题是您尝试显示的文本包含您使用的字体不支持的字符。方框字符是字体中没有字形的 Unicode 文本的默认替换字符。

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

        【讨论】:

          【解决方案5】:

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

          【讨论】:

            猜你喜欢
            • 2010-09-18
            • 2013-02-25
            • 2013-04-13
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2013-10-17
            • 1970-01-01
            相关资源
            最近更新 更多