checkenc - 自动文本编码识别

24 Oct 2015

checkenc

不知道你有没有经常遇到读取文本数据的乱码问题,这很有可能是由于读取文本时所使用的编码格式不正确导致的。

有的时候人工判断文件编码是一件比较麻烦的事情,特别是有大量文本需要处理的时候,通过手工检索肯定是不现实的。

jiebaR 包里有一个 filecoding 函数,这个函数使用了吴咏炜先生使用的文本编码检测方法,但是这个方法暂时没有办法识别 GB18030 编码的文件。

universalchardet 是 火狐浏览器进行网页文本编码识别的一个 c++ 库,可以识别的编码种类更多一些。这里有一篇 02 年发表的相关文章,感兴趣的可以看一下。checkenc 使用 universalchardet 进行识别。

目前该包还没有发布到 CRAN ,可以通过 Github 安装,Windows 用户需要安装 Rtools。

devtools::install_github("qinwf/checkenc")
checkenc("file.name")

除了 checkenc,文本编码识别方法还有 ICU 和 Enca,大家也可以自己尝试一下。

R package checkenc