如何检测txt文件编码

本文关键字:txt 文件 编码 检测 何检测 | 更新日期: 2023-09-27 18:10:35

可能重复:
如何检测文本文件的编码/代码页

我在目录中有很多txt文件。我必须找到所有使用UTF-8编码的。如何做到这一点?

如何检测txt文件编码

您无法检测到完全通用的任意文本编码,因为您永远不知道随机的一堆字节意味着什么。你能问的唯一有意义的问题是"我能把这个数据正确地解释为UTF-8吗"。

回答这个问题的最简单方法是在文件上运行任何你喜欢的编码转换器,并检查错误(例如iconv()或ICU的东西,或C#提供的任何东西(。如果你想手动操作,你必须逐个字节地浏览文件,并检查所有内容是否形成了正确的UTF-8代码序列。验证与平面转换(到UTF-32(的工作量几乎相同,因为为了进行正确的验证,您不仅必须检查所有字节是否构成完整的代码序列,而且还必须检查编码值本身是否是有效的Unicode代码点。

自己写这是一个有趣的小练习,但最快的解决方案是只使用库函数。

在没有任何元数据的文本文件中,这可能是不可能判断的。