如何在 c++ 中将ACE_Tstring写入文件

How to write ACE_Tstring to file in c++

本文关键字:Tstring 文件 ACE c++ 中将      更新时间:2023-10-16

我正在使用Windows操作系统,并尝试使用ACE_OS::write()将包含多种语言句子(通过Unicode(的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 Hello

屏幕上的结果 :

?????? ????? ???????你好

我错过了什么,我的代码有什么问题?

ACE_TString是未设置ACE_USES_WCHAR时用于ACE_CString的typedef。如果需要强制使用宽字符,请尝试使用 ACE_WString。