[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[debian-users:39008] Re: Apache1.3.26でCGIが出力する情報が文字化けする
山脇です。
説明が不十分で申し訳ありませんでした。
杉浦さん
> 今まで正しく(?)動作していた環境はどういう物なんでしょう?
> potato から upgrade したらおかしくなったとか?
まさにそのとおりです。旧と現在の環境は下記のとおりです。
・旧環境
Debian2.2 (2.2.19)
Apache 1.3.9-14.3
・現在の環境
Debian3.0 (2.4.18-bf2.4)
Apache 1.3.26-0woody3
> CGI は何で書かれた物なんでしょうか?
CGI は peal で記述しています。
また、httpd.conf では AddDefaultCharset off と指定しています。
CGI の修正は、下記のような形で、HTML を出力している直前の行にヘッダを出
力させる文を追加しました。
-----------------
print "Content-Type: text/html; charset=Shift_JIS\n\n";
# ↑上の一文を追加
print <<"End";
<html>
<head>
</head>
<body>
・
・
・
</BODY>
</HTML>
End
-----------------
しかし、この方法では、ヘッダとして認識されず、ブラウザウィンドウに
Content-Type: text/html; charset=Shift_JIS
が表示されてしまい、出力されたページも文字化けしました。
そこで、CGI の先頭部分で、
-----------------
#!/usr/bin/perl
require "jcode.pl";
use CGI;
print "Content-Type: text/html; charset=Shift_JIS";
-----------------
としたところ、
Content-Type: text/html; charset=shift_jisContent-Type: text/html; charset=ISO-8859-1
というヘッダが出力されました。
また、問題が発生している該当 CGI をコマンドラインから実行したところ、
CGI 内では出力することを指定していないはずの
Content-Type: text/html; charset=ISO-8859-1
が先頭に出力されました。
> # 個人的には perl の CGI.pm がつけてるんじゃないかと思うのですが。
気になったので、CGI.pm ファイルを閲覧していると、文字コードを設定してい
る部分がありましたが、このサーバ上で CGI で出力している動的ページを
Shift-JIS のみで出力している場合、極端な話、この部分を書き換えてしまっ
ても構わないものなのでしょうか?
小西さん
> まさかとはおもいますけど
> .htpaccess
> に
> AddType "text/html; charset=hoge " .html
これは .htaccess ファイル自体存在しないので、関係ないと思います。
重ね重ねよろしくお願いします。
------------------------
山脇 yamawaki@xxxxxxxxx