このスレッドはクローズされています。記事の閲覧のみとなります。
EUCで書かれたCGIを正しく表示するには? |
|
- æ¥æï¼ 2007/12/15 22:16
- ååï¼ RYO
- ①不明点・障害内容:EUCで記述されたCGIで出力が文字化けする。
②ログの有無 : (有:その内容): ③Distribution :Fedora Version:8 ④Service Name : Version: ⑤ネットワーク構成:
いつもお世話になります。おかげさまで大方のCGIは動くようになりました。 ところが一つだけ動作はするものの、出力表示が文字化けしてしまうCGIがあります。配布先の説明によれば サーバの漢字コードはEUCであると決めてかかっており、そのCGIもEUCで書かれているとあります。現在使用中の BIGLOBEのサーバでは特別意識することなく転送・パーミッションの変更を行っただけで正しく表示されています。 このCGIをFedoraで正常に表示させる方法があるでしょうか?
|
■ コンテンツ関連情報
Re: EUCで書かれたCGIを正しく表示するには? ( No.1 ) |
|
- æ¥æï¼ 2007/12/16 09:32
- ååï¼ 管理者
- HTMLの最終的に表示出力する部分はブラウザに委ねられているので、
「自分(CGI)が出力したコードはXXだよ」と宣言してあげなければなりません。
以下が、HTMLソースのヘッダ内のタグになります。
<META HTTP-EQUIV="Content-type" CONTENT="text/html; charset=EUC-JP">
このタグの「charset=EUC-JP」部分が該当部分となります。 Perl(CGI)スクリプトの出力部分に存在していない場合は新たに追加して、 誤っている(「charset=Shift_JIS」など)場合は正しいコードにする必要があります。 ※:jcode.plなどの日本語コード変換ツールで「Shift_JIS」に統一している場合もあるので注意が必要です。 例) CGIが「EUC」で書かれているが、上記のタグでShift_JISとなっている場合、 jcode.pl等で文字コード変換(Shift_JIS出力)している場合等
|
Re: EUCで書かれたCGIを正しく表示するには? ( No.2 ) |
|
- æ¥æï¼ 2007/12/16 16:44
- ååï¼ RYO
- それが、一応CGIとしては動作しているので、出力されたページのソースを見てみると
<META HTTP-EQUIV="Content-type" CONTENT="text/html; charset=EUC-JP">は正しく記述されています。 でありながら本文はHTMLソースレベルでも文字化けしています。 ということは、CGIをサーバに転送する時の問題ではないかと思っているのですが、どうなんでしょうか? サーバはFedora8ですから、当然UTF8で動作しているはずです。転送はNextFTPのバイナリモードで、 ホスト漢字コードをEUC,Shift-JIS,UTF8,無変換いずれの設定にしても変りません。
|
Re: EUCで書かれたCGIを正しく表示するには? ( No.3 ) |
|
- æ¥æï¼ 2007/12/17 22:14
- ååï¼ RYO
- 自己解決しました。
CGIをもう一度ダウンロードし直して、アーカイブを解凍し、文字コード無変換で サーバにアップロードしたところ、正常表示されました。レンタルサーバに設置する時に エディタでいじってあったのが原因だと思われます。 ありがとうございました。
|
■ その他