サーバマシンにウェブサイトで公開されているCGIプログラムをDLし、cgi-binディレクトリに置いて動かそうとしたのですが、文字化けします。
ネットワーク環境は、1台のルーターの下にサーバマシン1台(OS:RedHat9,Webサーバ:Apache1.3.33, IP:192.168.1.10)、クライアントマシン数台(OS:Windows 2000, IP:192.168.1.*)となっています。
まず、Kent Webさんのサイトhttp://www.kent-web.com/から掲示板「プチ☆ボード」をサーバマシンにDLし、httpd.confのScriptAliasで設定したcgi-binディレクトリに設置したところ、動作はするものの文字化けしてしまいます。
サーバマシンのMozillaから書き込んでみると、サーバマシンからでもクライアントマシンのIEからでも日本語は文字化けします。クライアントマシンから書き込んでみると、サーバマシンでもクライアントマシンでもその書き込みだけは文字化けしません。
同じくKent WebさんにあるDiary Note(気まぐれ日記)というCGIをDLし設置してみると、文字化けでタグが壊れているのか、トップページは表示されるもののリンク先へ飛びません。別ファイルから読み込むメッセージの部分だけは日本語で正しく表示されますが、他の部分はすべて日本語は文字化けしています。
テキストエディタでdiary.cgiファイルを開いてみると、日本語部分は文字化けしています。
そこで、一度クライアントマシンにプログラムをウェブサイトからDLし、FFFTPでASCIIモード、EUCコードに設定してdiary.cgiファイルをサーバマシンへアップロードしてみました。すると、テキストエディタで開くと日本語部分が正しく表示されるものの、cgi-binディレクトリにそのファイルを置いてブラウザからアクセスしてみると、やはり文字化けして動作しません。
どうすれば表示・動作が正しくなるのでしょうか?
No.4ベストアンサー
- 回答日時:
>Shift JISで保存しているようです。
なるほど、多分、気を利かしてそうしているのでしょうね。<この場合いらんことですけど(^^;
>サーバマシンでファイルをいじるものではない
なるほど、
ロックされたりすると(クライアントが)困りますもんね。マシンパワーを使ってしまうしね。(GUIなんかで作業してたら大変な気もしますしね)
一理あると思います。
サーバーマシンしかない時は、一端作業用にコピーして作業すればいいかと思います。
> マシンパワーを使ってしまうしね。(GUIなんかで作業してたら大変な気もしますしね)
すべてCUIで操作できるといいのですが、せかされているためじっくり基礎からやることができず、ついGUI環境を使ってしまいます。
無理をしてでもCUIでの操作を覚えてしまえばいいんでしょうけど。
今回は、本当にありがとうございました。
また機会がありましたら(おそらく何度もあると思いますが^^;)よろしくお願いします。
No.3
- 回答日時:
>Linuxのテキストエディタで少しでもいじると文字化けしてしまいます。
Linuxでエディタを起動して編集しているのではなくて、
IEとかで接続して、エディタを起動して編集しているのですか?
そうしたネットワーク接続した端末から、ちゃんと編集できるエディタではないのかもしれませんね。
(勘違いしてますか、私?)
Linuxのエディタは、2バイトをちゃんと扱えるエディタなのでしょうか?
(例えば、カーソル移動で、全角文字の処は、全角でカーソルが移動し、Deleteキー一回で1文字が消える)
そうでないなら、エディタが想定している位置と現在編集している位置が違ってしまって、化けてしまっているのかもしれません。
日本語が扱えるエディタを導入・構成しましょう。
まあ、同じコトなら、winで作業すればいいとも思いますけど。
何度もお付き合いいただき、ありがとうございます。
「テキストエディタ」とは、いわゆる一般的なテキストファイルを加工するエディタのことではなく、RedHatのスタートメニューの[アクセサリ]に入っているアプリケーションの名前です。ちょうどWindowsの「メモ帳」と同じようなものです。私の説明不足でした。すみません。
このエディタ、わざわざEUCに変換して送ったファイルをShift JISで保存しているようです。
emacsエディタでいじってみると、問題なく保存できました。
そして、経験者の方に「そもそも、サーバマシンでファイルをいじるものではない」と注意されました。無知なもので、こんな基本的なことも知りませんでした。
WindowsのクライアントからFTPサーバまたはファイルサーバ経由でアップする分には問題ありませんから、このことは「気にしない」ということで、いったん済ませてしまうことにします。
プチ☆ボードだけでなく、他のCGIプログラムも、多少の問題をはらみつつも動くようになりました。
これもひとえにBLUEPIXYさんのおかげです。
丁寧なお答え、とても参考になり、助かりました。
本当にありがとうございました。
No.2
- 回答日時:
まずは、おめでとうございます!
(^o^)/
>Win 2kマシンで編集したpetit.cgiを…
ダウンロードしたCGIファイル自体がシフトJISで作成されています。
なので、メッセージの表示部分(全角文字列が埋め込まれている部分)が、EUCで表示しようとすると化けてしまいます。
そのためにサーバーにアップする前に、あらかじめファイルを変換してやらないといけません。
一端変換してアップしてからであれば、その後ファイルをいじるのは問題ない(変更する手順が重要なのではなくて単にファイルの書かれているコードの問題)と思います。
> まずは、おめでとうございます!
まず目的が達成できて、一安心です。本当にありがとうございますm(_ _)m
引き続きいろいろやってみているのですが、FFFTPでWin→RedHatに転送したpetit.cgiは、Linuxのテキストエディタで少しでもいじると文字化けしてしまいます。
たとえば、コメントアウト行(行頭が#で始まっている行のことです。この呼び名でいいのかな?)に半角スペースをひとつ入れて保存とか、スペースを挿入、即座にバックスペースで削除して元に戻し保存とか、ほんのわずかいじっただけでも、文字化けしてしまうのです。
クライアントのOperaとIE、サーバのMozillaでそれぞれエンコードを自動判別、Shift JIS、EUCとして試しても、いずれも化けています。
念のためFFFTPの設定を。
[オプション]の[転送1]で転送モードは[常にASCIIモード]
[接続]→[ホスト一覧]→[ホストの設定]→[文字コード]で
ホストの漢字コード:EUC,ファイル名の漢字コード:euc,両方の欄で[半角カナを全角に変換]にチェック(といっても、半角カナなんかファイル内にありませんが)
なにやら奥の深そうな問題なので、参考になるサイトや解決のヒントだけでも教えていただけると幸いです。
No.1
- 回答日時:
Bongさんの環境は、質問文から多分EUCなのですね。
くだんの(プチ☆ボード)プログラムは、シフトJISの環境で動かすことを想定しているようです。
# 文字コードをシフトJIS変換
&jcode'convert(*val, "sjis", "", "z");
の部分を
# 文字コードをEUC変換
&jcode'convert(*val, "euc", "", "z");
にして、
EUCでアップロードしてみて下さい。
試してないので、ウマくいくかどうかはわかりませんけど。
回答ありがとうございます。
おっしゃるとおりにやってみると、問題解消しました。
数日間この問題にひっかかっていたので、本当に感謝します。
ところで、実ははじめ忠告に従わずサーバマシンのテキストエディタでpetit.cgiを書き換えながら試行錯誤していたのですが、これでは文字化けは解消しませんでした。そこでBLUEPIXYさんのおっしゃるとおりにWin 2kマシンで編集したpetit.cgiをFFFTPで送り、上書きしてやると正しく動作しました。
別の質問になってしまいますが、どなたか、これの理由を教えてくださいませんでしょうか。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- サーバー 別サーバに構築したApache+Tomcatの連携について 2 2023/03/06 23:23
- CGI (フリーの)ツリー掲示版CGI、昔は多用させてもらいましたが・・今セキュリティ上どうでしょう? 2 2023/06/25 07:18
- その他(IT・Webサービス) ホームページにカウント数を表示する 2 2022/10/28 10:37
- C言語・C++・C# プログラミングの問題です。至急教えてください。 /***から***/の部分をプログラミングにしてほし 1 2022/10/13 11:48
- ドライブ・ストレージ 複数のパソコンが自宅にあり、互いの固有のHD、光学ドライブを相互にアクセスする方法。その2 3 2022/12/16 09:54
- HTML・CSS CSSファイルの日本語コメントが文字化けしてしまう 3 2022/12/26 15:50
- CGI CGIが読み書きするデータファイルのパーミッションはさくらのインターネットでは何にするべき? 1 2023/05/02 16:44
- その他(プログラミング・Web制作) ゲームを日本語化しようとすると文字化けしてしまいます。 2 2022/08/19 15:36
- HTML・CSS リンクバナーのHTMLタグ。画像を変えたり、設置位置を変えるとバナー貼付け側はどう見える? 2 2023/02/01 12:01
- その他(IT・Webサービス) WEBサイト内のファイルを探す方法は? 1 2022/11/11 16:38
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
メモ帳での一括たて列選択
-
テキストファイルをページ番号...
-
.batファイル作成 mailto: コ...
-
Binary--> ascii 変換Tool
-
アイコンの名前の改行
-
windowsのメモ帳からlinuxへコピペ
-
viエディタを使う理由
-
r\\ command not found
-
ubuntuでテキストファイルが開...
-
マックでhtmlを打ち、ホームペ...
-
(1)はマックでみるとどう文字化...
-
インターネットの文字が文字化...
-
URLのパラメーラでURLエンコー...
-
RedHatで使えるエディタ
-
MS-DOSテキストファイルっ...
-
FTP 文字化け
-
LinuxMintで,Windows時代に作成...
-
hex表示したいのですが・・
-
illustrator cs2「均等配置(最...
-
onedriveの中身を削除したらパ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
メモ帳での一括たて列選択
-
【文字コード】コピー&ペース...
-
Macで簡単に改行を解除したい
-
windowsのメモ帳からlinuxへコピペ
-
ブラウザのテキストをコピーし...
-
LinuxMintで,Windows時代に作成...
-
XMLの表示文字化け
-
.batファイル作成 mailto: コ...
-
illustrator cs2「均等配置(最...
-
ubuntuでテキストファイルが開...
-
ファイル名の付け方(中央揃え)
-
ドラッグ&コピー→デスクトップ...
-
MS-DOSテキストファイルっ...
-
掲示板の書き込みの改行
-
RedHatで使えるエディタ
-
テキストで特定の文字列を含む...
-
Linuxで書いたプレーンテキスト...
-
au 携帯のメール(vMessage, .v...
-
テキストファイルをページ番号...
-
文字コードの混在しているファ...
おすすめ情報