我正在编写一个应用程序,它需要大量文本作为输入,可以是任何字符编码,我想将它全部保存在 UTF-8 中。我不会收到或无法信任随数据定义的字符编码(如果有的话)。
我有一段时间使用 Pythons 库 chardet 来检测原始字符编码http://pypi.python.org/pypi/chardet,但最近遇到了一些问题,我注意到它不支持斯堪的纳维亚编码(例如iso-8859-1)。除此之外,获得结果需要大量的时间/CPU/内存。2MB 文本文件约 40 秒。
我尝试只使用标准的 Linux 文件
file -bi name.txt
到目前为止,我的所有文件都为我提供了 100% 的结果。对于 2MB 的文件,这大约需要 0.1 秒。它还支持斯堪的纳维亚字符编码。
所以,我想使用文件的优势是显而易见的。有什么缺点?我错过了什么吗?