サーバソフトApache2とWindows 2000 または XPの組合わせにおいて
不具合が確認されました。
実際ネットでもいっぱい調べてみましたが、そのようです。
具体的に2.0系のどのバージョンからなのかはわかりませんm(__)m
この組み合わせでCGIをつかってWEBページを作ったり、動作テストを
される方はご注意ください。
上記のOSにApache2をインストールしてCGIを実行させます。
リンクに日本語が含まれてたりした場合、クリックしてそれを
送信するとURLに、日本語が含まれますが、その日本語を受け取って
HTML出力すると文字化けします。ちなみにクッキーも化けます。
※フォーム送信の場合は化けないらしい∧POSTの場合のみかな?)
CGIだけでなくPHPなんかでもおそらく化けると思います。
これを回避する方法は、いちいちスクリプト内部で
エンコードしないといけません。大変面倒くさいです。
文字化けする原因は、通常はブラウザがURLエンコードをして
くれるのですが、この組み合わせの場合は、URLエンコードされないで
そのままデータをサーバに送信してしまうためです。
日本語を含むURLをエンコードしないで送信したら、
今までエンコードされているものとして、スクリプト内で
デコード処理をしていたのに、エンコードされてないものを
デコードしてしまって日本語が化けます。
まだ、この件については、改善されてないようです。
Windows 2000やXPでWEBサーバを立てている人は少ないと思いますので
そんなに影響はないと思いますが、でも開発テスト環境としては
よくありません。
これじゃ、まともに開発ができないので、Apache2をアンインストールして
バージョン1.3系のApacheをWindowsXPに入れて見ました。
そしたら、ちゃんとブラウザでURLエンコードしてくれて
文字化けはなくなりました。
もしこの現象がUNIX(FreeBSD等)でもでたりしたら・・・。
でるとして、将来、各プロバイダやサーバ業者さんが
Apache2へバージョンアップしてしまったら・・・。
そこらじゅうのWEBサイトで文字化けが発生するかも?
ページの日本語表示文字やらクッキーの日本語文字やら・・・。
※この記事、微妙にどの部屋に書いたらよいかわからないですm(__)m
おしゃべり掲示板!みんなの話題共有サイト
みんなの疑問、質問、相談、体験談、意見、情報が誰かの役に立っています。