我的文字显示为问号是啥意思?

Posted

技术标签:

【中文标题】我的文字显示为问号是啥意思?【英文标题】:What does it mean when my text is displayed as Question Marks?我的文字显示为问号是什么意思? 【发布时间】:2010-09-18 01:11:57 【问题描述】:

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

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

【问题讨论】:

【参考方案1】:

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

    文本有时显示为问号

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

    文本有时显示为框

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

【讨论】:

【参考方案2】:

这意味着您的 Unicode 文本在某处被转换为 ANSI 文本。由于 Latin-1 之外的 Unicode 字符无法转换为 ANSI,因此它们将转换为问号。确保您的程序在编译时启用了 Unicode 支持(即预处理器符号 UNICODE 和 _UNICODE 由您的项目#定义),以便您始终调用各种 Windows 函数的正确 Unicode 版本。

【讨论】:

【参考方案3】:

基本上你已经损坏了文本。您将 Unicode 文本采用一种编码,然后将其转换为另一种编码,而没有检查目标编码是否包含源文本中的所有字符。这样做之后,你就会得到一堆乱码。

方法包括:

    将 UTF-8 文本视为 ANSI(无需先转换为有效的代码页) 将 Unicode 文本转换为代码页,而不检查代码页中是否包含正确的字符。

【讨论】:

以上是关于我的文字显示为问号是啥意思?的主要内容,如果未能解决你的问题,请参考以下文章

oracle 插入中文查询显示乱码,问号是啥原因

VSCode——VScode提供的代码格式中问号是啥意思

Latex作者标注显示问号是啥意思,怎么修改,是JCIS期刊Latex排版,谢谢!

三元从句中连续两个问号是啥意思?

这些代码中的问号是啥意思? [复制]

c语言中":"(冒号)和问号是啥意思