【发布时间】:2013-03-12 22:31:07
【问题描述】:
我创建了一个包含字符串表的 RC 文件,我想使用一些特殊的
字符:ö ü ó ú ő ű á é。所以我用 UTF-8 编码保存字符串。
但是当我调用我的 cpp 文件时,是这样的:
LoadString("hu.dll", 12, nn, MAX_PATH);
我得到一个奇怪的结果:
我该如何解决这个问题?
【问题讨论】:
-
哦,还有其他匈牙利人。你好。为您固定英语(达到一定水平)。
-
从我对 Windows 的记忆中,它本身不支持 UTF8。它要么是一些特定的代码页,要么是 UTF16。希望这会有所帮助。
-
它可能在 UTF-8 中读取就好了。当您尝试在窗口中显示它时,问题就来了。 Windows 代码期望它采用不同的编码。
-
@user1601401 您不会更改对话编码,但您必须为其提供以本地代码页(“A”API)或 UTF16(“W”)API 编码的字符串.无论哪种情况,您都必须将 UTF8 字符串转换为 Windows 可以理解的内容。
-
rc.exe的现代版本理解 UTF-8。您需要在(顶级).rc 文件中使用#pragma code_page(65001)。字符串资源将存储为 UTF-16,因此您需要确保使用LoadStringW和MessageBoxW(或使用UNICODE编译)。
标签: c++ winapi unicode utf-8 rc