检测特定字符集的存在

时间:2009-06-09 10:57:46

标签: encoding character-encoding detection

我需要一种方法来检测文件是否包含来自某个字符集的字符。

具体来说,我想检测一系列文件中是否存在UTF8编码的西里尔字符。有没有工具可以做到这一点?

由于

2 个答案:

答案 0 :(得分:2)

IIRC ICU库具有进行字符集检测的代码。虽然这基本上是最好的猜测。

编辑:我的确记错了,请查看此paper / tutorial

答案 1 :(得分:2)

如果您正在寻找现成的解决方案,可以尝试Enca

但是,如果您只想检测可能被解码为UTF-8西里尔字符的内容(没有任何完整的UTF-8有效性检查),您只需要查找/(\xD0[\x81\x90-\xBF]|\xD1[\x80-\x8F\x91]){ n ,}/(这个精确的正则表达式是 n 后续UTF8编码的俄罗斯西里尔字符)。要进一步检查整个文件是否只包含有效的UTF-8数据,您可以使用isutf8(1)之类的内容。

这两种方法都有好的和坏的方面,有时可能会给出错误的结果。