CGIServlet続き

昨日の第一の壁になっていたTomcatのCGIServletだが、
CGIServletのソースをいろいろいじっているうちに日本語が化けず
に表示できるようになった。

Process#getInputStream()でCGIの実行結果のストリームを
とってるみたいなのだが、このときエンコーディングを指定してないの
が原因のようである。

とりあえず、CGIRunner#run()で、

commandsStdOut = new BufferedReader
(new InputStreamReader(proc.getInputStream()));

となっているところに、

commandsStdOut = new BufferedReader
(new InputStreamReader(proc.getInputStream(),”UTF-8″));

とエンコーディング指定をつけてみたのだが、表示はされるものの、
HTTPヘッダにはutf-8が指定されていて、でも実際ブラウザに送られている
コードはEUCみたいなので、なんだか不完全。

もう少し追いかけてみようか迷うところだが、結構面倒くさい気もしている。

現実として、日本人でTomcatを使ってPerlのCGIを動かしている人って、
誰もいないのだろうか?
確かに、ニーズはあまりなさそうだけど。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です