【发布时间】:2013-11-23 03:23:26
【问题描述】:
我有一个文件,里面有这样的句子:returnCodeMsgDE=Es gibt nicht genug Arbeitsspeicher um das Programm auszuf\u00FChren. Zurzeit gibt es %d frei MB zu verf\u00FCgung
我想阅读这些句子,将它们写入一个将传递给 MessageBox 的变量,这样我就可以将它们写入一个对话窗口,其中 unicode 符号应该被它们的 unicode 等效的本地字符替换。
但是我得到的对话框是这样的:“auszuf\u00FChren”。
这是我的代码中发生这种情况的部分:
_TCHAR* errorMsg = NULL;
_TCHAR* returnCodeMsgDE2 = readPropertiesFile(_T_ECLIPSE("returnDE")); //here I get this string: L"returnCodeMsgDE=Es gibt nicht genug Arbeitsspeicher um das Programm auszuf\\u00FChren. Zurzeit gibt es %d frei MB zu verf\\u00FCgung"
_stprintf(errorMsg, _T_ECLIPSE("%s"), returnCodeMsgDE2, _freeMemory()); //freememory() returns an Integer.
MessageBox( topWindow, errorMsg, title, MB_OK );
我不知道如何让我的程序正确地表示 Unicode 符号,我尝试了很多 printf 和 scanf unicode 版本,但它们都不起作用。
我也尝试过设置语言环境。
你能帮帮我吗?此刻我完全迷失了。
【问题讨论】:
-
你试过在 wchar.h 中声明的函数吗?
-
请先检查您的构建类型。 TCHAR 在 Unicode 构建中定义为 wchar_t,但在非 Unicode 构建中定义为 char。只有 wchar_t 可以正确处理 Unicode。