このページは福井県立大学の田中求之が2006年1月まで運用していた Mac のサーバ運用に関する会議室 「Web Scripter's Meeting」の記録です。情報が古くなっている可能性がありますのでご注意ください。

nkfの使用法について

発言者:薫
( Date Tuesday, April 11, 2000 11:59:43 )


ただいまPERLでCGIスクリプトを作成しております。
日本語変換をするに当たり、現在「jcode.pl」を使用しております。
そして、もう、ひとつnkfという日本語コード変換システムがあるとの
ことで、使いたいと思っております。サーバー側にはすでにnkfが導入
されているため、使うだけなのです。
しかし、私の友人でnkfを使っているのは、ファイル書きこみのときに
変換するというものでした。できればメモリーの中で関数のように使用
したいと思っているのですが、可能なことなのでしょうか。

よしもと さんからのコメント
( Tuesday, April 11, 2000 19:58:50 )

>日本語変換をするに当たり、現在「jcode.pl」を使用しております。
>そして、もう、ひとつnkfという日本語コード変換システムがあるとの
>ことで、使いたいと思っております。サーバー側にはすでにnkfが導入
>されているため、使うだけなのです。

なぜ、jcode.plを使えているのにnkfを使いたいと思ったのでしょうか?

>しかし、私の友人でnkfを使っているのは、ファイル書きこみのときに
>変換するというものでした。

普通はそうして使いますよね。

>できればメモリーの中で関数のように使用
>したいと思っているのですが、可能なことなのでしょうか。

「メモリーの中で関数のように使用する」というのはいまいちよく分かりませんが
jcode.plように使いたいのであれば、jcode.plを使えばよいんじゃないですか?


さんからのコメント
( Thursday, April 13, 2000 11:14:59 )

コメントありがとうございます。
私がnkfを使おうとする理由は、jcode.plがPERLの環境によって使えたり使えなかったりすることに加え、nkfはコンパイル言語なのでjcode.plよりも速い処理速度が期待できるという点からです。
あまり詳しく知らないので、ここにたずねてきました。
jcode.plのように、サブルーチンのように使うことができるわけではないのかもしれません…よく知らないもので…

よしもと さんからのコメント
( Thursday, April 13, 2000 21:45:44 )

>jcode.plがPERLの環境によって使えたり使えなかったりする

そうなんですか?Perl4でもPerl5でもちゃんと走ると思うんだけど..
例えば走らない環境と言うのはどういう環境なのでしょうか?

#Perl 5.6は試していないので知りませんが...

>nkfはコンパイル言語なのでjcode.plよりも速い処理速度が期待できるという点からです。

試したことないけど、そんなに変わらないんじゃないかなぁ???>どなたかご存じ?

(スクリプト言語=遅い)ってイメージあるようですけど、処理によってはCで
書かれた物と遜色なかったりするもんですよ。

>jcode.plのように、サブルーチンのように使うことができる

えっと、それではこれを試されては如何でしょうか?

→  Kconv

ショージ さんからのコメント
( Thursday, April 13, 2000 22:15:58 )

>>jcode.plがPERLの環境によって使えたり使えなかったりする
>
>そうなんですか?Perl4でもPerl5でもちゃんと走ると思うんだけど..
>例えば走らない環境と言うのはどういう環境なのでしょうか?

JPerlだとjcode.plが使えないってことだと思いますよ。

>試したことないけど、そんなに変わらないんじゃないかなぁ???>どなたかご存じ?

どのくらいのデータを変換するのか分かりませんが、CGIで扱うことができる程度の
文字数なら、どちらでもほんの一瞬だと思いますから、無理してnkfでやる必要はな
いと思います。

UNIXをメインに使っている方の作られるCGIではメールの送信にnkfを使っていること
が多いので、なんとなくnkfを使うと楽チンそうに感じるということではないでしょう
か。確かに楽チンそうに思えますけど。

>(スクリプト言語=遅い)ってイメージあるようですけど、処理によってはCで
>書かれた物と遜色なかったりするもんですよ。

ですよねぇ・・・。今はI/Oも速いから、インタプリタのスピードもかなり上がって
いますよね。

よしもと さんからのコメント
( Friday, April 14, 2000 07:11:11 )

ショージさん、ご無沙汰しています。

>JPerlだとjcode.plが使えないってことだと思いますよ。

なるほど、そういうことですか。
まあ、Perlもマルチバイト文字に対応する(もう、したのかな?5.6で)でしょうから
将来的にはこのあたりの処理は楽になるんでしょうね、多分。

>UNIXをメインに使っている方の作られるCGIではメールの送信にnkfを使っていること
>が多いので、なんとなくnkfを使うと楽チンそうに感じるということではないでしょう
>か。確かに楽チンそうに思えますけど。

まあ、nkfは定番みたいなところがありますからね、実際。

>ですよねぇ・・・。今はI/Oも速いから、インタプリタのスピードもかなり上がって
>いますよね。

それに、最近のスクリプト言語は純粋な意味でのインタプリタじゃなく、一度
内部コードにコンパイルして実行していますね。後苦手な部分はCで書いたモジュール
を使って実行速度を稼いだりできますので、侮れませんよ (^^;


ショージ さんからのコメント
( Friday, April 14, 2000 22:10:00 )

>ショージさん、ご無沙汰しています。

こちらこそ、ご無沙汰しています(^_^)って、あいさつだけではなんですから・・・

>なるほど、そういうことですか。
>まあ、Perlもマルチバイト文字に対応する(もう、したのかな?5.6で)でしょうから
>将来的にはこのあたりの処理は楽になるんでしょうね、多分。

5.6ではまだちょっと不完全のようですね。
最近は2バイトもサポートしてくれるプログラマーも多くて、これも国際化コーディ
ングに協力された日本のプログラマーの皆さんのおかげですね>感謝

>それに、最近のスクリプト言語は純粋な意味でのインタプリタじゃなく、一度
>内部コードにコンパイルして実行していますね。後苦手な部分はCで書いたモジュール
>を使って実行速度を稼いだりできますので、侮れませんよ (^^;

そうでした。

最近はlinuxconfなどのユーティリティがPythonで書かれていて、かなり高速なのは
びっくりです。国内ではRubyが人気を集めているようですが、そこまで手を出せない
です。




よしもと さんからのコメント
( Friday, April 14, 2000 23:18:25 )

>5.6ではまだちょっと不完全のようですね。

そうですか。まあ、まだこれからでしょうけど、期待しましょう (^^;

>最近は2バイトもサポートしてくれるプログラマーも多くて、これも国際化コーディ
>ングに協力された日本のプログラマーの皆さんのおかげですね>感謝

本当に頭が下がる思いです。

>最近はlinuxconfなどのユーティリティがPythonで書かれていて、かなり高速なのは
>びっくりです。

これってgtkを使っているんでしょうねぇ。だったら、結構早いかも。。。

#早くgtk勉強しないと (^^;

>国内ではRubyが人気を集めているようですが、そこまで手を出せない
>です。

最新版がMacにportされれば、CGIの開発環境としては申し分ないんでしょうけど...

きむら さんからのコメント
( Monday, April 17, 2000 14:40:52 )

Macで使えるnkfもありますか?
jcode.plはちょっとおまじないをすればJPerlでも使えたはずですよ。

稲垣 さんからのコメント
( Monday, April 17, 2000 15:53:57 )

>Macで使えるnkfもありますか?

 Macでnkfはあまり必要無いかと思いますが、どの様な用途を考えているのでしょうか?
AppleScriptであれば、Tanaka's OSAXで事足りますし、これを応用すれば、漢字コード変
換のドロップレットが簡単に作成できますよ。

 あと、エディタなども複数の文字コードに対応したものがフリーウェア/シェアウェア
でありますので、そちらを利用すればいいかと思いますが・・・・。

春日 薫 さんからのコメント
( Wednesday, April 19, 2000 10:31:16 )

私が発案しておいて、しばらく来れませんでした(^^;)
ありがとうございます。とりあえず、「JPERL」なのかサーバーにたずねて
みることにします。また分からないことがありましたら、こちらに
たずねることがあると思いますが、よろしくお願いします、