如何禁止非 UTF-8 文件名?

lve*_*lla 5 linux utf-8 btrfs

是否可以在文件系统级别强制所有创建的文件条目都具有有效的 UTF-8 名称?我正在使用 Btrfs。

Cel*_*ada 5

不可以。您要么必须修改 Linux 或文件系统实现,要么使用强制执行限制的直通过滤器文件系统(可能使用熔断器实现)。

这是一个好主意,但可能很难达成共识:

  • 老派的纯粹主义者会坚持认为文件名应该能够是任何以 null 结尾的字节字符串。
  • 其他人会说,如果您强制执行有效的 UTF-8,您还应该进一步禁止其他 Unicode 错误,例如组合没有基本字符的字符、未分配的代码点等。