Внутрішня частина більшості файлових систем зберігає байти: драйвер файлової системи не переймається тим, що означають байти. Узагальнений драйвер файлової системи в Linux та більшості інших сучасних уніцій дозволяє будь-якому байту, окрім /
та нульовому байту, відображатися у імені файлу.
Існують файлові системи, які можуть мати обмеження в кодуванні - зазвичай це нефайлові файлові системи, такі як FAT або NTFS. Деякі мережеві файлові системи, такі як Samba, можуть переводити між кодуванням сервера і кодуванням клієнта; вам потрібно переконатися, що конфігурації сервера та клієнта є узгодженими.
Зазвичай у більшості систем байти, що складають ім'я файлу, інтерпретуються як UTF-8. Якщо ви запускаєте програму, яка інтерпретує імена файлів як символи, наприклад, додаток, який передає імена через FTP, можливо, вам знадобиться налаштувати цю програму, щоб сказати, що імена ваших файлів закодовані в UTF-8. Налаштування середовища LC_CTYPE
на локальну локацію UTF-8, як en_US.UTF-8
і хитрості, застосовується для багатьох програм командного рядка.
Якщо ви зберігаєте файли в системі, яка не підтримує UTF-8, це не має значення. Байти залишаться однаковими. Ви не зможете відобразити символи, що складають імена файлів, але якщо ви скопіюєте файли назад у систему, яка підтримує UTF-8, ці самі байти все одно відображатимуться як символи UTF-8.
Якщо ви пишете власну заявку, використовуйте UTF-8 всередині та, коли це можливо, для зберігання та передачі - це гарна ідея.