c++ - 你能在 std::string 和 std::wstring 之间手动转换吗
问题描述
我正在使用新的 C++<filesystem>
库,所有表示文件和文件夹名称的字符串都作为const wchar_t*
指针返回。在我的程序中,我使用char
s 和std::string
,据我所知这很好,因为所有文件路径都可以用ASCII
字符(只有一个字节)写入。有一种方法可以从std::wstring
to转换std::string
,但<codecvt>
用于此的标头在 C++17 之后已弃用。
我想知道,仅仅将每个 2-byte 的值读wchar_t
入 single-byte会有什么危害char
?每当您必须从std::wstring
(我假设UTF-16
)转换为 single-bytestd::string
时,任何大于127
或255
in 的字符std::wstring
都不能包含在 中char
,所以它们不能以任何方式转换,对吧?
解决方案
推荐阅读
- javascript - 如何使 .one () 方法在不重新加载页面的情况下再次工作
- laravel - 在 AppServiceProvider 中使用 Auth
- android - Camera2 控制图像方向
- python - 绘制一个晦涩的 Python 图
- c - 不要使用 libtiff 在 C 中获取图像深度值
- google-coral - 倒计时直到匹配珊瑚中的数字
- linux - 想做一个简单的脚本来压缩和解压 linux 中的文件
- javascript - Fiddler , Spoofing Referer 不能正常工作
- cad - 如何使用 eyeShot 创建绘制交互式矩形
- scala - 结合律被破坏的单子会在理解中产生不正确的结果吗?