※ ChatGPTを利用し、要約された質問です(原文:IE6で文字化け します。)
IE6で文字化けするURLの回避策を教えてください
このQ&Aのポイント
IE6で文字化けするURLの回避策を教えてください。
IE6で文字化けするURLを回避する方法を知りたいです。
IE6での文字化けを解決する方法を教えてください。
IE6で文字化け します。
以下のURLが、IE6で文字化けします。(IE8やMozillaでは正常です)
http://cgi.geocities.jp/rhcpf907/fml2tex/?%BC%B0%A1%E3%20%A6%B2_{n=1}^N%20a_n%20%A6%B7_n%A1%A2%A6%B2_{m=1}^M%20b_m%20%A6%B5_m%20%A1%E4%20%A1%E1%A6%B2_{n=1}^N%A1%A1%A6%B2_{m=1}^M%A1%A1a_n^{*}b_m%20%A1%E3%A6%B7_n%A1%A2%A6%B5_m%20%A1%E4
IE8と見比べて頂けるとわかるのですが、<や> がおかしくなります。
回避策がありましたら、お教え下さい。
プログラムは、以下です。
$qstr = rawurldecode($_SERVER["QUERY_STRING"] );
:
:
if (strlen($qstr) <= 2){
return 'CanNotEncode';
}
// 自動検出
$encd = mb_detect_encoding($qstr, 'EUC-JP,SJIS,UTF-8,JIS');
if ($encd != ''){
$expr = mb_convert_encoding($qstr,"SJIS", $encd);
if ( mb_substr('式',0,1,'SJIS') == mb_substr($expr,0,1,'SJIS') ){
return $expr;
}
}
// Yahooブログ(EUC-JP) だけは救う
$expr = mb_convert_encoding($qstr,"SJIS", 'EUC-JP');
if ( mb_substr('式',0,1,'SJIS') == mb_substr($expr,0,1,'SJIS') ){
return $expr;
}
return 'EncodeFail ['.substr($qstr,0,8).']';
}
:
:
// $exprから"式”を取り去って全角→半角にして MineTeX.cgi に渡す
お礼
アドバイスありがとうございます。 このCGIの使われ方は、<img src="http://cgi.geocities.jp/rhcpf907/fml2tex/?式y=x^2"> とか、Yahooブログの場合は、Wiki文法で [[img(http://cgi.geocities.jp/rhcpf907/fml2tex/?式< Σ_{n=1}^N a_n Ψ_n、Σ_{m=1}^M b_m Φ_m > )]] のように、ユーザが 直接URLを打ち込む使い方をするものです。 したがって、エンコードは、ブラウザ任せになると思います。 何かブラウザのエンコードを強制させる方法がありましたら、お教え下さい。
補足
どういう現象かは、 http://blogs.yahoo.co.jp/kafukanoochan/63268944.html を、IE6とIE8 で見て下さい。 「<」や「>」が、変になります。 尚、コメント欄のHirotaさんという方のコメも参考にして下さい。