【发布时间】:2023-03-11 10:22:01
【问题描述】:
据我了解 - NTFS 支持 Unicode 文件名(如 Micorsoft 声称的 UTF-16?)。
但官方 MSDN 文档对于使用哪些代码页在 FAT-32 上存储文件名(文件路径)非常含糊。
这里说 OEM 代码页(我假设是 CP437)用于存储文件名:http://msdn.microsoft.com/en-us/library/windows/desktop/dd317748.aspx
但事实证明,可以有不同的 OEM 代码页,CP437 就是其中之一:http://msdn.microsoft.com/en-us/library/windows/desktop/dd317752.aspx
现在我们都知道,像 mount 这样的实用程序支持更多不同的 FAT 代码页,而不仅仅是 OEM 代码页集。
那么,FAT-32 文件名的实际 cdepage 是什么?这取决于创建 FAT 卷时的系统代码页? FAT 能否支持真正的双字节字符集代码页,如 UTF-16?或者像 UTF-8 这样的多字节字符集代码页是限制?
还有更具体的问题: 当我使用 CreateFileW 函数(正如 MSDN 所述,它使用 UTF-16 作为文件名代码页)在 FAT-32 卷上创建文件时会发生什么?
【问题讨论】:
标签: windows winapi unicode codepages fat32