题
我正在尝试使用(例如)Windows GDI 在程序中显示一些文本,并且一些 unicode 字符显示为框?怎么了?
也可以看看: 当我的文本显示为问号时,这意味着什么?
解决方案
通常,这意味着指定的unicode字符在该特定字体中不可用。尝试将字体更改为其中一个多国字体,它应该消失。
其他提示
(来自 http://www.cafepress.com/nucleartacos.163046834的T恤图片一>)
上图显示了未考虑全部Unicode字符的文本显示系统的常见故障模式。在Windows平台上,无法使用任何可用字体表示的字符用开放矩形表示。
在 Windows 中,尝试显示 Unicode 字符时会出现 2 种常见的显示问题:
文本有时显示为问号
- 当 Unicode 数据通常通过系统代码页(但可以在转换调用中指定其他代码页)转换为 8 位字符集编码(或技术上的多字节字符)时,会发生这种情况。如果目标 8 位字符集不包含所需的字符,则目标字符集中无法表示的任何字符都会转换为问号。
文本有时显示为框
- 这是字体没有特定字符的 glpyh 的问题。当文档中的 Unicode 字符与字体支持的字符不匹配时,会显示框。具体来说,这些框代表所选字体不支持的字符。
该协议是您尝试显示的文本包含您正在使用的字体不支持的字符。框字符是Unicode文本的默认替换字符,字体中没有字形。
在Windows上,如果您尝试以多种不同语言显示文本,请使用Arial Unicode MS等字体 - 这包括大量不同语言的字形。它是“最小公分母”。 font - 字形通常会在那里,但它通常缺少字符,而且一些字形看起来有点奇怪。
不隶属于 StackOverflow