Answers:
在内部,大多数文件系统都存储字节:文件系统驱动程序并不关心字节的含义。Linux和大多数其他现代unice上的通用文件系统驱动程序允许/
在文件名中显示除null字节以外的任何字节。
有些文件系统可能具有编码限制,通常是非本地文件系统,例如FAT或NTFS。某些网络文件系统(例如Samba)可能会在服务器编码和客户端编码之间转换;您需要确保服务器和客户端配置一致。
常规上,在大多数系统上,组成文件名的字节被解释为UTF-8。如果运行将文件名解释为字符的应用程序(例如,通过FTP传输名称的应用程序),则可能需要配置此应用程序以告知它您的文件名使用UTF-8编码。将环境设置LC_CTYPE
为UTF-8语言环境就像en_US.UTF-8
许多命令行应用程序一样。
如果您将文件存储在不支持UTF-8的系统上,则没关系。字节将保持不变。您将无法显示组成文件名的字符,但是如果将文件复制回支持UTF-8的系统,这些相同的字节仍将显示为UTF-8字符。
如果您要编写自己的应用程序,则最好在内部使用UTF-8,并尽可能使用它进行存储和传输。