- 締切済み
IEのCGIリンク先の自動文字化け
こんにちわ。 先日、ローカルでPerlの実行テストを していた際のことです。 それまであったスクリプトに次の一文を加えて テストしました。 print "<a href=\"./advindex.cgi\" target=\"framemain\">捜査を開始する</a><br>\n"; すると、それまで日本語(シフトJIS)で 進んできていたものがこの文を追加したページで いきなり西ヨーロッパ言語(Windows)に 変わってしまいました。 不思議に思い、この一文をコメントにし、 再度実行してみたところ、日本語(シフトJIS) のままでした。 会社にて、全く同一のスクリプトに上記の 一文を加えて実行したところ、 自宅にて西ヨーロッパ言語に変わってしまった ページも日本語にて表記できました。 これは、何が原因だと考えるのが妥当なのでしょうか。 OSがからむ何かのタイミングの問題 だったのでしょうか。 昨日の夜の話ですので、時間がなく、自宅にて PCを再起動させてから実行テストは していないのですが。 OSは共にWin2000、 ブラウザは共に5.5 SP2です。 このような現象をどう捉えたらよいのか ご存知の方がいらっしゃいましたら、 教えていただきたいのですが。 よろしくお願いします。
- みんなの回答 (3)
- 専門家の回答
みんなの回答
たとえば「掲示」と書くと文字化けしてしまうことがあるので「掲\示」とやることで回避したことがあります。やってみてはいかがでしょう。
- Haizy
- ベストアンサー率40% (404/988)
aquastepさん、こんにちは。 日本語コードの罠(笑)にはまっちゃいましたね。 さて、CGIのサンプルなどを見ていると、「表示」と言うところが、「表\示」 になっている事があります。 これは、示 の漢字第一コード(先の8ビット)がとあるコードとぶつかるのです。なので、この後ろは、そのコードではないと明記する為に、その前に半角英数で「\」を入れるのです。 サーバ側で、うまく制御してくれなかったら、これで矯正しましょう。 でわでわ
補足
Haizyさん、こんにちわ。 回答ありがとうございました。 おっしゃるとおり、かつてエスケープ コードで回避できることは知っておったのですが、 今回の場合はページ内の表示すべてが 文字化けしてしまうのです。ブラウザの エンコードを確認しても西ヨーロッパ言語 となってしまっているのです。 質問文が至らず混乱させてしまい申し訳ありませんでした。
- akasaka
- ベストアンサー率38% (38/99)
使用している日本語を16進数表記すると、判別するのですが、コントロールコードとタマタマ同じ場合に、この現象が出ます。 実行サーバーで、文字化け防止策を講じてあると、防止できます。 私も悩んだです、「Perl」でネット検索して理解しました。
補足
akasakaさん、こんにちわ。 回答ありがとうございました。 おっしゃるとおり、かつてエスケープ コードで回避できることは知っておったのですが、 今回の場合はページ内の表示すべてが 文字化けしてしまうのです。ブラウザの エンコードを確認しても西ヨーロッパ言語 となってしまっているのです。 質問文が至らず混乱させてしまい申し訳ありませんでした。
補足
Min_2さん、こんにちわ。 回答ありがとうございました。 おっしゃるとおり、かつてエスケープ コードで回避できることは知っておったのですが、 今回の場合はページ内の表示すべてが 文字化けしてしまうのです。ブラウザの エンコードを確認しても西ヨーロッパ言語 となってしまっているのです。 質問文が至らず混乱させてしまい申し訳ありませんでした。