Windows上的文件是否有编码属性?

5

我一直在研究如何确定文件的实际编码及其所有的复杂性问题。但我只需要知道保存文件时所设置的编码方式。Windows 是否存储与文件类型、修改日期等类似的信息呢?


http://stackoverflow.com/questions/21204948/store-text-file-character-set-encoding-in-file-metadata - Milind R
2个回答

7

这是不可用的。Windows文件系统(NTFS)除了名称、扩展名、上次写入日期等基本信息外,不会为文件存储任何元数据,没有与文件类型相关的内容。

你只能使用BOM(字节顺序标记),即文件开头的字节,来指示UTF编码和字节顺序。它仅适用于使用UTF编码的文件,并且不幸的是,它是可选的。然而,真正的麻烦制造者是使用特定的8位非Unicode代码页编码的文本文件,通常是由遗留应用程序创建的。对此你无能为力,只能希望该文件距离你的计算机不远,以使默认系统代码页匹配。


3
没有任何操作系统会将编码信息存储到文件中。编码是文本文件的属性。由于一些文本文件没有 .txt 扩展名,而有些 .txt 文件并不是真正的文本文件,因此将编码与文件关联起来并没有太多意义。
一些 UTF-8 文件在文件开头存储了字节顺序标记(BOM),可以用来检查它是否为 UTF-8 文件。但是,BOM 并不总是存在,而且 UTF-8 文件也不一定需要 BOM。因此,确定文本文件的编码的唯一方法是使用不同的编码方法打开文件,直到您能够读取该文件。

Mac OS X如何确定文件编码:https://dev59.com/kHRB5IYBdhLWcg3wuZQ1#EKDknYgBc1ULPQZFsUOD - Milind R

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接