IEで$_GET変数が文字化けする時の対処法
IEで「http://example.com?title=△△」のようにURLに付けた$_GET変数が文字化けする時の対処法です。
まえがき
先日、URLに$_GET変数を付けて遷移先のフォームのinputにその値を表示するという何も難しいことはないページを作成しました。そしたらクライアントから「IEだと文字化けする」と言われました。
んなバカな!とか思ったんですが確認してみると
マジでIEだけ文字化けしている。
こんな感じに。
またIEかよ。。。
という事でIEで$_GET変数が文字化けする時の対処法を紹介します。
$_GET変数を「urlencode()」する
普通にaタグでこんな感じで値を渡すとします。
<a href="http://kotori-blog.com?title=KoToRiの日記">リンク</a>
このままだと遷移先で文字化けしますので「urlencode()」を使用してURLエンコードしてやりましょう。
<?php $str = 'KoToRiの日記'; $txt = urlencode($str); ?> <a href="http://kotori-blog.com?title=<?php echo $txt; ?>">リンク</a>
これでIEの文字化けが改善されるはずです。
まとめ
たかがこれだけのために2時間くらいハマりました笑
IEほんといい加減にしてほしいですね。大分マシにはなりましたけど。
あんまり需要はなさそうだけど覚え書きでした。