2009-06-09 59 views
0

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

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

谢谢

回答

2

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

不过,如果你只是想检测(没有任何完整的UTF-8有效性检查)的什么可以可能解码为UTF-8西里尔字母的存在,你就必须用grep这样的事情/(\xD0[\x81\x90-\xBF]|\xD1[\x80-\x8F\x91]){ñ,}/(这个确切的正则表达式适用于ñ后续UTF8编码的俄罗斯西里尔字符)。为了额外检查整个文件只包含有效的UTF-8数据,你可以使用类似isutf8(1)的东西。

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

+0

指定正则表达式的Grepping解决了我的问题。谢谢! – dasp 2009-06-10 13:00:07

2

IIRC ICRC库具有执行字符集检测的代码。虽然这基本上是一个尽力而为的猜测。

编辑:我没记错的话,看看这个paper/tutorial

+0

谢谢,本教程很有帮助。将其书签以供将来参考。 – dasp 2009-06-10 13:06:20