S-pore
[HomePage]
2000/02/28(月) 22:40:47
ぽすとぐれさんがおっしゃるようにnkfにパイプしてもいいですし,
外部プログラムを呼び出すと遅くならないかということが心配なら,
nkfのソースを拝借して,自分のプログラムから関数として
直接呼び出せるように改造してもいいと思います。
私も,専用サーバーに移転してから初めてサーバー負荷のことを考えるようになり(をい),
掲示板やチャットなどをC言語化したのですが,
そのとき最初に用いていたのが後者の方法です。(サブルーチン化)
そして,一時はそれでうまくいったと思っていたのですが,
まれに,ある条件で特定の漢字がくると文字化けするという不具合が発生し,
原因がよくわからなかったので,それからは文字コードについての処理はしないことにしました。
それから半年ほど自分のサイトで使っていますが,あまり問題はないようです。
あえて言えば,ヘッダで charset=Shift_JIS を強制的に指定しているのでネスケ2では使えないのと,
ネスケ3(4もかも)でcharset指定されたページをみると
たまに,なぜか読み込み途中でリロードしだすという極めて謎な現象が起こることがあったり・・・。(本当に謎。)
その程度で,化けた文字がファイルに書き込まれるということはとりあえず起こっていません。
日本語が使われていないページに入力フォームを置くのなら話は別ですが,
そうではなく,ごく普通の日本語掲示板のようなCGIなら
文字コード変換はfailsafe的な意味しか持たないと個人的には思っています。
それなら,せっかくC言語で書くんだから不要な処理を省いておもいっきり軽くしたいでしょ。
・・・とかあまりいい加減なことを書くとおしかりをうけそうですが・・・。(^^;
もちろん,偉人様がたが公開CGIスクリプトで当然のようにjcode.plを使っているところをみると,
やはりちゃんと文字コード変換処理をしたほうがいいのかも,とは思いますが。
あと,CGIスクリプトに使う言語についてですが,
C言語はあまりオススメできません。(^^;
Perlで組むときでさえ,最初はCGIの仕組みの習得で大変なのに,
C言語でやると,それに加えてフォームデコードやsplitやreplaceといった
関数を自作する必要がでてくると思うので。
こういうCGI用の関数ライブラリがどこかにないかなとちょっと探してみたことは
あったのですが,当時はライブラリどころかC言語CGIについてのサイトも
ほとんど見つからず,結局全部自作するハメに・・・。
(ちゃんと探せばどこかにあると思いますが^^;)
なんか1年前の自分を見ているようで燃えてしまいました。長くてすみません。
それではがんばってください。