首页 > 解决方案 > 你能在 std::string 和 std::wstring 之间手动转换吗

问题描述

我正在使用新的 C++<filesystem>库,所有表示文件和文件夹名称的字符串都作为const wchar_t*指针返回。在我的程序中,我使用chars 和std::string,据我所知这很好,因为所有文件路径都可以用ASCII字符(只有一个字节)写入。有一种方法可以从std::wstringto转换std::string,但<codecvt>用于此的标头在 C++17 之后已弃用。

我想知道,仅仅将每个 2-byte 的值读wchar_t入 single-byte会有什么危害char?每当您必须从std::wstring (我假设UTF-16转换为 single-bytestd::string时,任何大于127255in 的字符std::wstring都不能包含在 中char,所以它们不能以任何方式转换,对吧?

标签: c++stringc++17

解决方案


推荐阅读