- ベストアンサー
Locationの文字化け
HTTP_REFERERで取得した情報によって表示するページを振り分けたいのですが、 print "Location: url\n\n";で表示されるページがNN4.7で文字化けしてしまいます。 解決方法があれば教えていただけますか? お願いします。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
実はいま別件で知り合いから教わったんですが、 print "Status: 301 Mover Permanently\n"; print "Location: url\n\n"; とすれば解決出きるそうです。
その他の回答 (2)
- TimWood
- ベストアンサー率50% (2/4)
ちなみに追加。 確かに<META>タグはWebサーバが読むためのものですが、 最近のブラウザはブラウザ側でも読んでくれます。
お礼
ご回答ありがとうございました。
WebサーバはApacheですよね? Locationによって表示されるページで、きちんとCharsetを出力していない場合このようなことがおきます。 CGIであれば、Content-TypeにCharsetを付加してヘッダを出力すれば解決します。 print "Content-Type: text/html; Charset=EUC-JP\n\n"; htmlなどであれば、httpd.confのDirectoryタグもしくは.htaccessでデフォルトのcharsetを指定すれば解決します。 AddDefaultCharset EUC-JP もしリダイレクト先のコンテンツが第三者の管理下に有る場合は知りません。本来はContent-Typeでcharsetを指定するべきことになっていますので。 http://www.csl.sony.co.jp/cgi-bin/hyperrfc?2616 # 「<META>タグで漢字コードを指定する」とかって話は、 # 結局のところContent-TypeヘッダにCharsetオプションを付加するための壱手段です。 # ヘッダが制御できる場合は制御しちゃった方が確実ってもんです。
お礼
ご回答ありがとうございます。 >WebサーバはApacheですよね? はい、そうです。 >もしリダイレクト先のコンテンツが第三者の管理下に有る場合は知りません 実はそういう状況なのです。でもリダイレクト先のページには、 <META>でCharset=Shift_JISが指定してあります。 NN4.7で再読み込みすると文字化けが直るのですが、最初の表示が化けます。 サーバの設定をいじれなければしょうがない事なのでしょうか?
お礼
試してみたところ、ばっちりでした。 どうも有り難うございました。