文字コードの自動判別

UTF-8を含めて日本語の文字コードを自動判別して処理しなければいけないのだが,最初はプログラムからnkfを呼び出して誤魔化そう(←志が低い(爆))と思ったが,ちょっとぐぐってみると,それらしいJavaプログラムが見つかった.ただ,論理的・プログラミング的にどうしても納得できない部分がいろいろあって,一日ほどは書き直していたのだが,ついに我慢できなくなって,結局半日ほどでまったく新たに別のコードを書いてしまった.今検証中だが,それなりに動いている様子だが,やはりUTF-8とShift-JISが必ずしも決定的に識別できないようだ.あと某?ジラ系に入っているY氏のコードも公開されていたと思うので,時間がある時にそれも調べてみるつもり.他に,良いコードってあるのかなあ?
追記:最初はEmacsの判定結果といちいち照らし合わせていたが,そのうち面倒くさくなったので,1000個のファイルに対してnkfの"-g"オプションを使って生成した判定結果リストと比較して,結果が異なる部分だけEmacsで検証して,この結果に基づいてEUCのSS2(半角カタカナ)のサポートを追加した.これでとりあえずはなんとかなりそう.残念ながら,nkfはどの文字コードに対しても論理的に識別可能なのにバイナリと判定してしまうバグ(対象ファイルの約4%だった)があるようだ.