gpt4 book ai didi

c++ - 跨平台 unicode 路径处理

转载 作者:太空狗 更新时间:2023-10-29 21:30:50 27 4
gpt4 key购买 nike

我正在使用 boost::filesystem 进行跨平台路径操作,但是当需要将调用分解为我无法控制的不接受 UTF 的接口(interface)时,这会崩溃8.例如,当使用 Windows API 时,我需要转换为 UTF-16,然后调用我将要调用的任何函数的宽字符串版本,然后将任何输出转换回 UTF-8。

虽然 wpath 和许多 boost::filesystem 函数的其他 w* 形式有助于保持理智,但对于如何最好地处理这种转换,是否有任何建议在需要的地方使用宽字符串形式,同时保持我自己的代码的一致性?

最佳答案

嗯,最简单的方法是制作某种通用例程,该例程将按照您希望提供的路径或路径周围的包装类的方式返回编码的字符串。

boost::filesystem::wpath boostPath( L"c:\\some_path" );
MyPathWrapper p( boostPath );
std::wstring sUtf8 = p.file_string_utf8();
std::wstring sUtf16 = p.file_string_utf16();
// or
std::wstring sUtf8 = p.file_string( CP_UTF8 );
// ...

类似的东西。

关于c++ - 跨平台 unicode 路径处理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1768991/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com