昨日の第一の壁になっていた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を動かしている人って、
誰もいないのだろうか?
確かに、ニーズはあまりなさそうだけど。