値を見てunescapeとdecodeURIを使い分ける
スポンサードリンク
僕がかつて作ったファイル送信のウェブページに、他の人が新しく作ったページでの入力を差し込むため、Cookieを使うっていう案件で、僕の作ったほうはCookieからのデコードをunescapeで行うのだけれども、他の人が作ったページでは、encodeURIで作っていたので、文字化けするっていう話。
これって、ハイドライドIIのマップの表示ルーチンが横方向に展開するのに、マップ担当の人が縦方向に圧縮したみたいな話だよね。この話は電波新聞社の「チャレンジ!ADV&RPG 1」あたりに書いてた記憶がある。
んで、データエンコード側の不始末をデコード側で拭うってことになるよね。こんな感じに。
function unescape2( f ) { if ( f.match(/%u/) ) { return unescape( f ); } else { return decodeURI( f ); } }
そもそもunescapeつかうな、ていう話なんだけど、MacIE5対応のためには外せないんだよね……
そうそう、jQueryのCookieマネージャ、もう自動でdecode済みの値取得するようなんで、これ使えません。そもそもMacIE5だと動きませんけれどもね……
スポンサードリンク
トラックバック(0)
トラックバックURL: http://blog.dtpwiki.jp/MTOS/mt-tb.cgi/3219
コメントする