在我正在进行的项目中,我处理了很多字符串操作;从二进制文件中读取字符串及其编码(可以是单字节或双字节)。本质上,我将字符串值读取为vector<char>
,读取编码,然后将所有字符串转换为wstring
,以保持一致性。
这工作得相当好,但是文件名本身可以是双字节字符。我完全不知道如何实际打开输入流。在 CI 中会使用_wfopen
函数传递wchar_t* path
,但wifstream
似乎表现不同,因为它专门用于从文件中读取双字节字符,而不是从具有双字节文件名的文件中读取单字节。
这个问题的解决方案是什么?
编辑:在网上搜索,标准 C++ 中似乎根本不支持此功能(例如,请参阅此讨论)。但是我想知道 C++11 是否真的在这个领域添加了一些有用的东西。