【发布时间】:2019-10-23 11:29:33
【问题描述】:
我有一段在 Linux 上引发异常的 C++ 代码示例:
namespace fs = std::filesystem;
const fs::path pathDir(L"/var/media");
const fs::path pathMedia = pathDir / L"COMPACTO - Diogo Poças.mxf" // <-- Exception thrown here
抛出的异常是:filesystem error: Cannot convert character sequence: Invalid in or incomplete multibyte or wide character
我推测该问题与ç 字符的使用有关。
- 为什么这个宽字符串 (wchar_t) 是“无效或不完整的多字节或宽字符”?
- 展望未来,我如何使相关代码跨平台运行在 Windows 和/或 Linux 上。
- 是否有我需要使用的辅助函数?
- 我需要从程序员的 PoV 中强制执行哪些规则?
- 我在这里看到了response,上面写着“不要在 Linux 上使用宽字符串”,我是否对 Windows 使用相同的规则?
Linux 环境(别忘了我想跨平台运行):
- Ubuntu 18.04.3
- GCC 9.2.1
- C++17
【问题讨论】:
标签: character-encoding std-filesystem