Kenji Tachibana's Weblog

« 前の日(Jun月 15日, 2005年) | 日付別メイン | 次の日(Jun月 17日, 2005年) »

http://blogs.sun.com/kenji/date/20050617 2005年 6月 17日 金曜日

ローテクな話 - 第一話 auto_ef について

多少、技術的な話をまとめた自分用のメモ書きのような場所を作ってしまいました。他の方のサイトと違い、最新技術の話や、聞いて役に立つ話はほとんどないと思います... ちなみに、ローテクというは、 ローテク = low technique + localization technique の造語です。 第一話として、Solaris 10 に実装された、auto_ef というコマンドについてです。

このコマンドは私が初めて (というか最初で最後) Solaris に実装したコマンドです。 また、Sun Java Enterprise messaging server のアラビア語とタイ語の問題を 解決するためにも利用されています。タイ語は patch としてしか提供されていない ようですが (確か bugID 5084308 だったと思います)、アラビア語に関しては、一応、 docs.sun.com のドキュメントに掲載されています。 (http://docs.sun.com/source/819-1054/channel2.html)

auto_ef は引数として入力されたファイルの文字のエンコーディングを調べて出力してくれます。 nkf というコマンドが日本語では非常に有名ですが、nkf の国際化版、というのが 一番わかりやすいかと思います。もしくは、Mozilla などの browser に 実装されている文字コード自動判別機能をコマンドと、ライブラリにしたようなものです。

最も単純な使い方は、

% /usr/bin/auto_ef 
と実行すれば、 で指定されたファイルのエンコーディングを出力してくれます。
例: 
% /usr/bin/auto_ef ~/memo/command.doc 
eucJP
ここで、表示されるエンコーディングは、Solaris の iconv (1) で利用可能な、 エンコーディングです。詳しくは、iconv の man page を参照してください。
-a オプションを指定すると、可能性があると判定されてエンコーディングが スコア付きで表示されます。
例:
% /usr/bin/auto_ef ~/memo/command.doc
eucJP  0.94
ko_KR.euc  0.05
この場合、eucJP である確率が 94%、 ko_KR.euc である確率は 5%、(残り 1% は、他のエンコーディング) であると判定されています。

auto_ef とうコマンド自体は、実は、libauto_ef という library を呼び出しているだけの コマンドで、第2話では、libauto_ef について書こうと思っています。


Valid HTML! Valid CSS!

This is a personal weblog, I do not speak for my employer.