とあるシステムを構築中にハマった体験を。
javascript内でPHPをパラメタ付きで呼び出すのですが、Firefoxでは正常に動作するも、IE9では正常に動作しない。
パラメタには日本語を含めていました。
なぜ???
いろいろと調べた結果、文字コードの問題でした。
HTML,PHP,javascript全てUTF−8で記述しているのですが、パラメタを渡すとSJISとして渡ってしまう。
うーん、metaタグとかscriptタグにcharset="UTF-8"を付加してるのになぜ。
結局、javascript内で以下のような記述をすることでIE、Firefoxともに同じ動作をするようになりました。
var Str = encodeURIComponent(文字列);
原因がわかるのに、苦労しました(--;)
【WEB開発】コメントする