0
我正在使用windows操作系统并试图使用ACE_OS::write()
将包含多种语言句子(通过Unicode)的ACE_Tstring
写入文件。如何在C++中编写ACE_Tstring文件
但我在文件中得到的结果是不可预知的字符(乱码文本)。
这是实现我的代码:
ACE_Tstring *str = new ACE_Tstring(L"مرحبا привет świecie Hello")
ACE_HANDL hFile = ACE_OS::open(L"myfile", _O_WRONLY);
ACE_OS::write(hFile, str, 1048);
wprintf(L"%ls",str->c_str());
正如你可以看到我还打印字符串到屏幕,并在屏幕上,我得到字符“????”出现任何接受英文字符的字符。
书面文本
مرحباприветŚwiecie的你好
结果在屏幕上显示:
?????? ????? ???????你好
我错过了什么,我的代码有什么问题?
看起来'c_str()'把你的字符串转换成普通的ACSII'char's,所以你在垃圾处处得到垃圾,除了英语 –