cgiにJISコードで出力させるには?

[上に] [前に] [次に]
y [E-Mail] 2000/02/03(木) 22:56:27
こんにちは

http://www2a.biglobe.ne.jp/~yama/
ここにある RES CGI(RES ver4.3)という掲示板のcgiで、
出力される文字コードをISO-2022-JPにしたいと思っています。

まず、掲示板を構成する3つのcgi自体をJISコードにして試したのですが、
動いてくれませんでした。サーバのログを見ると、

syntax error at /home9/..(略)../res.cgi line 23, near "= "<font
size=\"5\">ブラウザ情報があ°(以下、文字化けして読めません)

となっていました。res.cgiの22〜4行目は

if($proxyset2 eq "on" && $pwdset2 ne 'on'){
if($ENV{'HTTP_USER_AGENT'} eq ""){$messe = "<font size=\"5\">ブラウザ情報が
ありません<br>HTTP_USER_AGENTが利用できないかも知れません。</font>";&keikoku;}
if($ENV{'HTTP_USER_AGENT'} =~ /(proxy|via)/i){

この様になっていました。

次に、ラウンジを検索したところ、

open(STDOUT, "|nkf32 -j");

と書けばいいらしいことは分かったのですが、
これが上手く動いてくれません。単に、

#!/usr/mesh/bin/perl5

print "Content-type: text/html\n";
print "\n";
open(STDOUT, "|nkf32 -j");
print "あらら\n";

というcgiで試しても動かないので、サーバが対応していないか、
やり方が悪いのか、どちらかだろうと思うのですが、
よく分かりません。サーバはbiglobeのwww2uです。

どうしても必要というわけではなくて、
気まぐれでやってみたい、というだけのことなので、
身分にそぐわない複雑な知識・作業を必要とするのであれば、
素直に諦めたいと思います。いい加減な動機ですみませんm(__)m

何かいい方法をご存じの方がいらしたら教えてください。
よろしくお願いします。
とほほさん、長くなってしまい済みませんm(__)m

Nobu3 2000/02/04(金) 01:00:05
日本語入りのスクリプトをJISコードで書いてしまうのはダメです。
詳しいことはわかりませんが・・・。

で、EUCなり、SJISで動くのならば、素直に「jcode.pl」などのコード変換ライブラリを使いましょう。
元ネタを見ていないのでなんとも言えませんが・・・。

jcode.plの配布元(最新版は2.11)
ftp://ftp.iij.ad.jp/pub/IIJ/dist/utashiro/perl/

jcode.pl の私的な解説書
http://ina.kappe.co.jp/~sabre/kcode/jcode.html

mm 2000/02/04(金) 02:40:30
>open(STDOUT, "|nkf32 -j");
を↓にしてみては?
open(STDOUT, "|/usr/local/bin/nkf -j");

nkf32ってWin用じゃないの?

y [E-Mail] 2000/02/04(金) 03:53:13
[[解決]]
open(STDOUT, "|/usr/local/bin/nkf -j");
これで見事解決しました。
ありがとうございました。

[上に] [前に] [次に]