【发布时间】:2010-09-18 01:11:57
【问题描述】:
我正在尝试使用(例如)Windows GDI 在我的程序中显示一些文本,并且某些 unicode 字符显示为问号?怎么了?
【问题讨论】:
我正在尝试使用(例如)Windows GDI 在我的程序中显示一些文本,并且某些 unicode 字符显示为问号?怎么了?
【问题讨论】:
在 Windows 中,尝试显示 Unicode 字符时会出现 2 个常见的显示问题:
文本有时显示为问号
文本有时显示为框
【讨论】:
这意味着您的 Unicode 文本在某处被转换为 ANSI 文本。由于 Latin-1 之外的 Unicode 字符无法转换为 ANSI,因此它们将转换为问号。确保您的程序在编译时启用了 Unicode 支持(即预处理器符号 UNICODE 和 _UNICODE 由您的项目#定义),以便您始终调用各种 Windows 函数的正确 Unicode 版本。
【讨论】:
基本上你已经损坏了文本。您将 Unicode 文本采用一种编码,然后将其转换为另一种编码,而没有检查目标编码是否包含源文本中的所有字符。这样做之后,你就会得到一堆乱码。
方法包括:
【讨论】: