Encoding 检测特定字符集的存在

Encoding 检测特定字符集的存在,encoding,character-encoding,detection,Encoding,Character Encoding,Detection,我需要一种方法来检测文件是否包含来自某个字符集的字符 具体来说,我想检测一系列文件中是否存在UTF8编码的西里尔字符。有没有工具可以做到这一点 感谢IIRC,ICU库中有用于字符集检测的代码。虽然这基本上是一个最好的猜测 编辑:我没记错,看看这个IIRC,ICU库有代码可以检测字符集。虽然这基本上是一个最好的猜测 编辑:我没有记错,请查看此如果您正在寻找现成的解决方案,您可能想尝试一下 但是,如果您只想检测是否存在可能被解码为UTF-8西里尔文字的字符(没有任何完整的UTF-8有效性检查),则只

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

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


感谢

IIRC,ICU库中有用于字符集检测的代码。虽然这基本上是一个最好的猜测


编辑:我没记错,看看这个IIRC,ICU库有代码可以检测字符集。虽然这基本上是一个最好的猜测


编辑:我没有记错,请查看此

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

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


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

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

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


这两种方法都有其优点和缺点,有时可能会给出错误的结果。

谢谢,本教程非常有用。将其书签以备将来参考。谢谢,本教程非常有用。将其添加书签以备将来参考。