我试图在我的程序中使用(例如)Windows GDI显示一些文本,并且一些unicode字符显示为框?怎么了?
另请参阅:当我的文本显示为问号时,这是什么意思?
(来自http://www.cafepress.com/nucleartacos.163046834的 T恤图片)
上图表示文本显示系统的常见故障模式,该模式未考虑全部Unicode字符.在Windows平台上,无法使用任何可用字体表示的字符用开放矩形表示.
通常,这意味着指定的unicode字符在该特定字体中不可用.尝试将字体更改为其中一个多国字体,它应该消失.
在Windows中,尝试显示Unicode字符时会出现两个常见的显示问题:
文字有时会显示为问号
当Unicode数据通常通过系统代码页转换为8位字符集编码(或技术上多字节字符)时会发生这种情况(但可以在转换调用中指定其他代码页).如果目标8位字符集未包含所需字符,则目标字符集中无法表示的任何字符都将转换为问号.
文本有时显示为方框
对于特定字符没有glpyh的字体,这是一个问题.当文档中的Unicode字符与字体支持的字符不匹配时,框会显示.具体来说,框表示所选字体不支持的字符.