【问题标题】:Read *.txt file with German text, show it in my GUI -- characters with umlauts not correct [closed]读取带有德语文本的 *.txt 文件,在我的 GUI 中显示它——带有变音符号的字符不正确 [关闭]
【发布时间】:2021-08-18 00:48:44
【问题描述】:

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

我可以将德语单词放在我的字符串表中,它们会很好地显示在 GUI 中 - 充满可爱的变音符号和其他口音。但是,如果我有一个包含带有变音符号的德语文本的 *.txt 文件,当我读入它(使用 CStdioFile)然后在 GUI 中显示它时,变音符号和其他特殊字符不能很好地打印,而是出现 für 之类的东西(应该是“毛皮”,在 u 上带有变音符号)。

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

【问题讨论】:

标签: c++ mbcs


【解决方案1】:

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

编码字符串时

für

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

0x66 0xc3 0xbc 0x72

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

这些字节对应

für

在代码页 Windows-1252 中。

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-08-30
    • 1970-01-01
    • 2021-05-03
    相关资源
    最近更新 更多