操作系统如何知道文件的编码

Fra*_*ank 5 encoding operating-system utf-8

例如,我的磁盘上有一个文件:a.txt,我以十六进制模式打开它,发现其中没有其他信号字符,只有 UTF-8 的纯文本。

我想知道操作系统如何知道它是UTF-8?

谢谢,

Pek*_*ica 4

操作系统不知道。十六进制编辑器可能会自动检测它。通过查找特定字节对的存在和不存在可以实现这一点,但它并不是 100% 可靠。

没有存储文件编码的通用标志或属性。这就是为什么您在打开文本文件时经常需要手动指定编码。

标记 UTF-8 或 -16 文件的一种方法是 BOM 但这不是强制性的。