当文件名为“Unicode”文件名时,我需要将文件打开为 std::fstream(或实际上任何其他 std::ostream)。
在 MSVC 下我有非标准扩展std::fstream::open(wchar_t const *,...)
?我可以使用 GCC(最重要的)和 Borland 编译器等其他编译器做什么。
我知道 CRTL 提供了 _wfopen
但它提供了 C FILE *
接口(interface)而不是 io-streams,也许有一种非标准的方式来创建 io-stream 文件*
?是否有任何 boost::ifstream
带有类似 MSVC 的 Windows 扩展?
最佳答案
不幸的是,没有标准的方法可以做到这一点,尽管 C++0x(1x?) promise 这样做。在那之前,您正确地假设可以在 Boost 中找到解决方案,但是,您要搜索的库是 Boost.Filesystem .
Boost.Filesystem 内部默认使用宽字符串作为其通用路径系统,因此在这方面不存在 unicode 问题。
关于c++ - 使用非 MSVC 编译器在 Windows 下打开带有 Unicode 文件名的文件的 fstream,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6478986/