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,所以你在垃圾處處得到垃圾,除了英語 –