dポイントプレゼントキャンペーン実施中!

CGIの予約状況システムについて
お世話になります。
現在HP上にSSIを利用し、
http://www.dab.hi-ho.ne.jp/appletea/cgikan/yoyak …
↑こちらのCGIを埋め込もうとしております。

当方CGIの知識はほとんどありません。

必須の変更箇所等は全て修正し、サーバーも必要な設定は全て済まして、正常にアップロード致しました。
CGI自体はアクセスすると表示されます。
また、SSIにて埋め込んだwebページにもカレンダー表示はされております。

ただ文字化けしているのです。

注意事項どおりに、EUCモードにてFFFTPを使ってアップロード致しました。
数字は表示されますが、漢字の部分だけ記号になってしまいます。

こちらのCGIが当方の使用したい条件に完全一致した為に、是が非でも使用したいと考えております。
配布先にもご連絡致しましたが、メールが返って来てしまう次第でございます。

どなたかご教授頂ける方はいらっしゃいませんでしょうか?
何卒宜しくお願い致します。

A 回答 (2件)

URLのリンクから設置マニュアルを読んだのですが


質問者さんが公開しているサーバのOSは何になりますか?
不明な場合は、今まで普通のhtml等を公開する場合は
文字コードの設定はどのようにしていましたか?

もしサーバがWindowsである場合や、
UNIX等であってもEUC以外の文字コード設定であれば
CGIモジュール(yoyaku.cgi)をそのまま利用することはできません。
特にuni-codeだと、非対応のようです。

サーバOSの設定がShift-JISならば、
次の対応でおそらく実行可能だと思われます。

1.yoyaku.cgiの下記の部分を変更
=======================================
# OSの文字コード (euc / sjis)
$os_code = 'euc'; ##変更前
  ↓
$os_code = 'sjis'; ##変更後
======================================

2.サーバ転送時は全ファイル無変換、アスキーモードとする
    • good
    • 0

No1の回答をしたものですが、誤解がありましたようです。


申し訳ありませんが訂正させていただきます。

サーバ側の文字コードがどのようであっても、
次の設定変更をしてEUCコードでファイル転送すれば
表示可能となると思います。

# 出力コード (euc / sjis)
$output_code = 'sjis';

$output_code = 'euc';


OSがShift-JISであればファイルをShift-JISにすれば
文字化け解消と簡単に思っていましたが、
perlのスクリプトはperl本体のバージョン等の問題で
Shift-JISの特定文字列に文字化けが起こることがあるようです。
(WinXP ActivePerl5.10 + apache2.2で検証)
なのでこのCGIの作者は、EUC固定を想定してプログラム作成したのでしょう。
短慮の回答を重ねてお詫びします。
    • good
    • 0
この回答へのお礼

わざわざご丁寧にありがとうございました。
ひとまず、$output_code = 'sjis';→$output_code = 'euc';に直し、それでも駄目でしたが、
始めのご回答を参考に色々と見直し、htmlの設定を見落としていることに気がつきました;

<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
から
<meta http-equiv="Content-Type" content="text/html; charset=EUC-JP" />
へと変更した結果、文字化けが回避できました!!!

本当にありがとうございました!!
本当に助かりました!!!!

お礼日時:2010/06/02 23:12

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!