在Linux上使用文件路径字符串,使用什么编码?

Vio*_*ffe 2 c++ linux string filepath

Linux使用什么编码作为其文件API?我应该如何使用C++中的路径字符串,使用什么类?我指的是非ASCII字符的路径.在Windows上我使用UTF-16 std::wstring,在Mac上使用UTF-8和我自己的UTF-8字符串类.但不幸的是我的课程在Linux上不可用,所以我应该使用什么?

mvp*_*mvp 6

在内部,Linux允许使用任何字节序列作为文件名,除了空字节0和正斜杠'/'(用作目录分隔符).

在Linux上允许Unicode文件名的通用约定是使用UTF-8文件名编码.实现这一目标的最简单方法是使用旧的std::string(不是std::wstring在Windows上建议的),但是,您可能需要编写自己的类来验证它确实有效UTF-8.

几乎没有提供UTF-8字符串处理的现成库示例: