Можно ли закодировать имена файлов с использованием другой кодировки в той же файловой системе (на linux) - PullRequest
2 голосов
/ 07 мая 2020

В конкретной файловой системе определяется, в какой кодировке создаются имена файлов, или они могут быть созданы с использованием любой кодировки.

т.е. в одной файловой системе разрешено иметь некоторые имена файлов, которые закодированы как UTF-8, а некоторые как UTF-16 или нет. Я говорю не о содержимом имени файла, а только о самом имени файла.

1 Ответ

4 голосов
/ 07 мая 2020

Linux не интерпретирует имена файлов или пути как имеющие какую-либо конкретную кодировку. Имена файлов могут содержать любой байт в любом порядке, кроме NUL (0x0) и / (0x2F). Решение о интерпретации принимает приложение.

Из-за запрета на байты NUL, UTF-16 не может использоваться на практике (его закодированная форма часто содержит байты NUL).

формат на диске для NTFS требует, чтобы имена файлов хранились в UTF-16. В этом случае используется опция монтирования iocharset. Все имена UTF-16 из NTFS преобразуются с использованием этой кодировки для отображения в API файловой системы Linux (и наоборот). Файловые системы UDF, ISO9660, JFS и FAT также поддерживают хранение кодовых точек Unicode в определенной кодировке, поэтому iocharset также имеет значение для них.

На практике чаще всего используется UTF-8 .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...