我一直在阅读有关试图找出文件的实际编码及其所有复杂问题的问题。 但我只需要知道文件的编码在保存时的设置。 Windows是否将此信息存储在类似于文件类型,修改日期等的位置,?
答案 0 :(得分:4)
那是不可用的。 Windows文件系统(NTFS)不会存储文件的任何元数据,除了名称,扩展名,上次写入日期等等。没有特定于文件类型的内容。
所有可用的是BOM,文件开头的字节,表示UTF编码和字节顺序。它仅适用于以UTF编码的文件,不幸的是,它是可选的。然而,真正的麻烦制造者是使用特定的8位非Unicode代码页编码的文本文件。通常由遗留应用程序创建。没有什么可以做的,但希望文件没有创建太远离你的机器,以便默认的系统代码页匹配。
答案 1 :(得分:2)
没有操作系统将有关编码的信息存储到文件中。编码只是文本文件的属性。由于某些文本文件没有.txt扩展名,而某些.txt文件实际上不是文本文件,因此将编码与文件相关联并没有多大意义。
某些UTF-8文件在文件开头存储字节顺序标记(BOM),可用于检查它是否是UTF-8文件。但是,BOM并不总是存在,UTF-8文件不需要BOM。因此,确定文本文件编码的唯一方法是使用不同的编码方法打开它,直到您可以读取该文件。