Unicode 当我的文本显示为问号时意味着什么?

Unicode 当我的文本显示为问号时意味着什么?,unicode,text,fonts,Unicode,Text,Fonts,我试图在我的程序中使用(比如)WindowsGDI显示一些文本,一些unicode字符显示为问号?怎么了 另请参见:基本上,您已经损坏了文本。在一种编码中使用Unicode文本,然后将其转换为另一种编码,而不检查目标编码是否包含源文本中的所有字符。这样做之后,你就有了一大堆胡言乱语 方法包括: 将UTF-8文本视为ANSI(不首先转换为有效代码页) 将Unicode文本转换为代码页而不检查代码页中是否包含正确的字符 这意味着您的Unicode文本正在某处转换为ANSI文本。由于拉丁-1以外的Un

我试图在我的程序中使用(比如)WindowsGDI显示一些文本,一些unicode字符显示为问号?怎么了


另请参见:

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

方法包括:

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

  • 这意味着您的Unicode文本正在某处转换为ANSI文本。由于拉丁-1以外的Unicode字符无法转换为ANSI,因此它们会转换为问号。确保您的程序在上使用Unicode支持进行编译(即,预处理器符号Unicode和#Unicode由项目定义),以便始终调用各种Windows函数的正确Unicode版本。

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

  • 文本有时显示为问号

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

    • 这是字体没有用于特定字符的glpyh的问题。当文档中的Unicode字符与字体支持的字符不匹配时,将显示框。具体而言,这些框表示所选字体不支持的字符