阅读带有德语文本的*.txt文件,在我的GUI中显示它-带有变音符的字符不正确



我的世界是:MFC, Visual Studio c++,使用MBCS字符集。通常使用CString作为我最喜欢的字符串类型,但有时也使用std:string。

我可以把德语单词放在我的字符串表中,它们在GUI中显示得很好-充满了可爱的变音符和其他口音。但是,如果我有一个*.txt文件,其中包含带变音符的德语文本,当我(使用CStdioFile)读取它,然后在GUI中显示它时,变音符和其他特殊字符不能很好地打印,相反,像für这样的东西显示(应该是"fur")

如何读取*.txt文件的德语文本,并显示在GUI中?我以为这很简单。我发誓我以前做过,没有问题。提前感谢您的帮助!

问题可能是您的输入文件是用UTF-8编码的,而您的查看器将其解释为使用代码页Windows-1252的单字节编码。

对字符串

进行编码时für

在UTF-8中,您将得到以下字节:

0x66 0xc3 0xbc 0x72

字符fr分别被编码为一个字节,而字符ü被编码为两个字节。

这些字节对应

für

代码页Windows-1252.

在你的问题中,你说für是你为字符串für获得的输出。因此,我所陈述的似乎是对输出的最明显的解释。

最新更新