文字コード判定

[Solaris10]文字コード判定(http://d.hatena.ne.jp/handler/20080708) で書きましたが、auto_ef というコマンドがSolarisにはあります。
なので、OpenSolarisも当然、、、と思ったらデフォルトでコマンドないし。


$ pfexec pkg install SUNWautoef
...
$ which auto_ef
/usr/bin/auto_ef

で、こいつがちょっと複数確認しましたが、ちょっと判定できないものがありそうな?
文字コード判定で思いつくのはとりあえず以下です。

  • auto_ef(Solaris限定)
  • nkf -g
  • perlのEncode::Guessモジュールを使ったスクリプト(one liner だとちょっと無理そうな)

ちなみに、Encode::Guessは perl 5.8.0から CORE入りしているので普通のシステムなら、ちょっとスクリプト書いておくだけ(追加モジュールなし)で動くとおもいます。


$ corelist Encode::Guess

Encode::Guess was first released with perl 5.008

文字コードの変換で思いつくのは以下かな?

となので、nkf入れといて損はなさそうです。
http://sourceforge.jp/projects/nkf/ より


$ wget http://globalbase.dl.sourceforge.jp/nkf/37177/nkf-2.0.9.tar.gz
$ gzip -cd nkf-2.0.9.tar.gz | tar xf -
$ cd nkf-2.0.9
$ make
cc -O -Wall -pedantic -c nkf.c
cc -O -Wall -pedantic -c utf8tbl.c
cc -O -Wall -pedantic -o nkf nkf.o utf8tbl.o
$ ./nkf -version
Network Kanji Filter Version 2.0.9 (2009-01-20)
Copyright (C) 1987, FUJITSU LTD. (I.Ichikawa).
Copyright (C) 1996-2009, The nkf Project.
$

SunStudio が入っていればそのまま cc でコンパイルが通ります。gccの場合は CC=gcc あたりで大丈夫でしょう。

utf8のファイルを用意して確認するとこんな感じ。


$ auto_ef utf8.txt
UTF-8
$ nkf -g utf8.txt
UTF-8