c++ - 有没有办法在 C++ 中检测 Windows 和 Linux 上的文件名编码?

标签 c++ linux boost encoding utf-8

我正在尝试用 C++ 创建一个跨平台应用程序来执行字符转换。 我已经按照规则设置了 UTF-8 转换表。 eq( A = 埃).我使用 boost 库来获取文件名。我的理解是,我必须将它们从编码 X 转换为 UTF-8,进行转换,转换回编码 X 并使用新文件名保存。我如何找出文件系统正在使用的编码?

最佳答案

Windows 使用 UTF-16,而 Linux 平台通常是“二进制”。我所说的二进制是指您在文件名中看到的任何字节都是文件名 - 不要解码或重新编码字节。没有指示符表明它们是以什么格式编写的,但通常是 UTF-8。

关于c++ - 有没有办法在 C++ 中检测 Windows 和 Linux 上的文件名编码?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18602419/

相关文章:

c++ - 如何在Windows下编译Qt 4.6.3 for Windows Mobile (Windows CE)?

c++ - OpenCV 2.4.9读取空白图像

linux - 将 Linux 上完成的 Perforce Moves 匹配到 Windows

linux - 获取最新的文件名,其中扩展名区分大小写

c++ - 如何 boost 我的项目?

c++ - boost Spirit 和 phoenix 解析为 std::string

c++ - 在 C+ +'s ` extern "C"` block 中使用 c99

c++ - 平滑离散数据

linux - 如何查看我的网卡的供应商信息?

c++ - boost:如何监控互斥体的状态并在死锁时强制释放 [2]