gpt4 book ai didi

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

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

Linux 的文件 API 使用什么编码?我应该如何使用 C++ 中的路径字符串,使用什么类?我的意思是带有非 ASCII 字符的路径。在 Windows 上,我使用 UTF-16 和 std::wstring,在 Mac 上,我使用 UTF-8 和我自己的 UTF-8 字符串类。但不幸的是,我的类(class)在 Linux 上不可用,所以我应该使用什么?

最佳答案

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

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

提供处理 UTF-8 字符串的现成库的例子很少:

  • ICU (坚固但非常重)。
  • Glib::ustring (隐式转换为 std::string,GPL)。
  • UTF8-CPP (非常轻量级,仅标题)。

关于c++ - 在 Linux 上使用文件路径字符串,使用什么编码?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18481872/

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