在特定的文件系统上,它定义了文件名创建的编码,或者可以使用任何编码创建文件名。
即,在一个文件系统上,某些文件名编码为 UTF-8,某些文件名编码为 UTF-16 是否合法。我不是在谈论文件名的内容,只是文件名本身。
最佳答案
Linux 不会将文件名或路径解释为具有任何特定编码。文件名可以包含任何顺序的任何字节,除了 NUL (0x0) 和/(0x2F)。由应用程序决定解释。
由于禁止NUL字节,UTF-16在实际中无法使用(其编码形式经常包含NUL字节)。
NTFS 的磁盘格式要求文件名以 UTF-16 格式存储。在这种情况下,将使用 iocharset 挂载选项。 NTFS 中的所有 UTF-16 名称均使用此编码进行转换,以便在 Linux 文件系统 API 中可见(反之亦然)。 UDF、ISO9660、JFS 和 FAT 文件系统还支持以特定编码存储 Unicode 代码点,因此 iocharset
对它们也有意义。
实际上,UTF-8 是最常用的。
关于linux - 你可以在同一文件系统上使用不同的编码来编码文件名吗(在Linux上),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61656612/