Ads By Google
javascriptのunescapeを使ったデコードが思い通りにいかないのですが。
Internet Explorerだけデコード結果が異なってしまいます。ネットスケープなどと同じデコード結果を得る為にはどうしたらよいでしょうか?
2006-04-15 06:21の質問
この質問と回答を読んで役に立った場合は「役に立つ質問」に投票してください。投票が多い質問は、役に立つ質問一覧に掲載され、より多くの人に見てもらうことができます。
回答(1)
1.
2006-04-15 11:47:21

escape/unescapeは、過去の互換性のために残されているだけの関数だと思いますので、
古いブラウザだとこれらの関数は実装されていないかもしれませんが、escape/unescapeはブラウザによって文字コードの扱いが異なるので、一般的には使えません。逆にいうと、文字コードを統一するコードを仕掛けておけば、escape/unescapeでも異なるブラウザ間でも期待通りの変換になるはずですが、これは面倒なので、encodeURI/decodeURIを使う方が幸せです。
もし古いネスケとかも視野に入れるなら、どうしようもないので、CGIとかで文字コードを変換するとよいかと思います。JSだけでは面倒です。
<!--これでいいのかな。。。-->
encodeURI/decodeURIまたは、
encodeURIComponent/decodeURIComponentの使用を推奨します。後者は、:とか/とかも変換されます。
古いブラウザだとこれらの関数は実装されていないかもしれませんが、escape/unescapeはブラウザによって文字コードの扱いが異なるので、一般的には使えません。逆にいうと、文字コードを統一するコードを仕掛けておけば、escape/unescapeでも異なるブラウザ間でも期待通りの変換になるはずですが、これは面倒なので、encodeURI/decodeURIを使う方が幸せです。
もし古いネスケとかも視野に入れるなら、どうしようもないので、CGIとかで文字コードを変換するとよいかと思います。JSだけでは面倒です。
<!--これでいいのかな。。。-->
回答レベル : 回答
質問が間違っていたのに正しく解釈されたご回答ありがとうございました。m(__)m
正しい質問内容は「javascriptのescapeを使ったエンコードが思い通りにいかないのですが。」でした。
encodeURI/decodeURIというビルトイン関数は初めて知りました。
おかげ様で希望する動作が得られました。
Ads By Google
コメント
まだコメントがありません



