[Gauche] nkfモジュール

nkfモジュール

nkfモジュールは、nkfGaucheのモジュールとしてポーティングしたものです。

動作環境

Ubuntu Linux 8.04, Guache 0.8.13で動作を確認しています。

ダウンロード

以下のURLからダウンロードできます。

インストール

gauche-packageコマンドでインストールできます。

$ gauche-package install gauche-nkf-0.1.tar.bz2

使い方

以下のようにして使います。

(use nkf)

(nkf '([<オプション>...]) <文字列>)

<オプション>は、nkfコマンドのオプションと同一です。リストの一要素に一つのオプションを指定します。

<文字列>は、変換される文字列です。

例えば、文字列"あいうえお"をUTF-8に変換したい場合、以下のようにします。

(use nkf)

(nkf '("-w") "あいうえお")

注意

このモジュールは、スレッドセーフではありません。

雑記

Gaucheには、gauche.charconvモジュールが備わっているので、本来このようなモジュールを作る必要はなかったのですが、gauche.charconvモジュールでは対応できない状況にあったので、作成しました。

gauche.charconvモジュールでは対応できない状況というのは、ひとつのファイルの中に複数の文字コードが含まれている、という場合です。具体的には、以下のページが該当します。

このページは(ヘッダの<meta>タグに書いてある通り)、EUC-JPで書かれていますが、コメント(HTMLのコメントではなくて、日記に対するコメントです)を見ると一部がShift-JISになっています(多分、ページがEUC-JPにも関わらずブラウザがShift-JISでコメントを送信し、それがそのままデータベースに入ったものと思われます)。このページをhttp-getした後、gauche.charconvモジュールでUTF-8に変換しようとしたのですが、Shift-JISになっている部分が変換できず、エラーになりました。nkfだとEUC-JPで書かれている部分もShift-JISで書かれている部分もUTF-8に変換できたので、nkfをモジュール化しました。