【问题标题】:Does a file on windows have an encoding attribute?Windows 上的文件是否具有编码属性?
【发布时间】:2011-07-01 19:42:11
【问题描述】:

我一直在阅读有关试图找出文件的实际编码及其所有复杂性的问题。 但我只需要知道保存文件时设置的文件编码。 Windows 是否将此信息存储在类似于文件类型、修改日期等的位置?

【问题讨论】:

标签: windows file encoding


【解决方案1】:

这是不可用的。 Windows 文件系统 (NTFS) 不会为文件存储任何元数据,除了名称、扩展名、上次写入日期等琐碎的内容之外。没有特定于文件类型的内容。

您所拥有的只有 BOM,文件开头的字节表示 UTF 编码和字节顺序。它只存在于以 UTF 编码的文件,不幸的是,它是可选的。然而,真正的麻烦制造者是使用特定 8 位非 Unicode 代码页编码的文本文件。通常由遗留应用程序创建。您对此无能为力,但希望该文件不是在离您的机器太远的地方创建的,以便与默认系统代码页匹配。

【讨论】:

    【解决方案2】:

    没有操作系统将有关编码的信息存储到文件中。编码只是文本文件的属性。由于某些文本文件没有 .txt 扩展名,而某些 .txt 文件并不是真正的文本文件,因此将编码与文件相关联没有多大意义。

    一些 UTF-8 文件在文件的开头存储了字节顺序标记(BOM),可以用来检查它是否是 UTF-8 文件。但是,BOM 并不总是存在,并且 UTF-8 文件不需要具有 BOM。所以确定文本文件编码的唯一方法是用不同的编码方式打开它,直到可以读取文件为止。

    【讨论】:

    猜你喜欢
    • 2014-05-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-02-20
    • 1970-01-01
    • 2018-01-04
    • 1970-01-01
    • 2020-02-14
    相关资源
    最近更新 更多