最好是 pure ruby 的。
最近在用 rchardet19, '几乎'能满足需求。
但是最近碰到一篇俄文,识别错误了..
1.9.3p0 :009 > diff.diff
=> "--- a/mtg_novels.html\n+++ b/mtg_novels.html\n@@ -19,7 +19,7 @@\n <TR>\n <!-- \xCC\xE5\xED\xFE -->\n <TD BGCOLOR=#000000 WIDTH=140 VALIGN=\"TOP\">\n-<?php include 'menu.inc'; ?>\n+<?php include= 'menu.inc'; ?>\n </TD>\n <noindex>\n <!-- \xCE\xF1\xED\xEE\xE2\xED\xEE\xE9 \xF2\xE5\xEA\xF1\xF2 -->"
1.9.3p0 :010 > CharDet.detect(diff.diff)
=> #<struct encoding="MacCyrillic", confidence=0.9034937924254334>
这里应该 detect 到 Cyrillic 或者 windows-1251 的..
MacCyrillic 跟 Cyrillic 的区别是啥.. 现在看来效果就是 俄文的第一个字符会坏掉..
detect 这种事,果然是字符越多越容易正确的。