encodeURI()
関数を使用してjavascriptで特殊文字をエンコードencodeURIComponent()
し、メソッドを使用してそれらをデコードしようとしましたjava.net.URLDecoder.decode()
が、これはFirefoxの魅力のように機能しました。しかし、Internet Explorer では動作しないようです。同じコードが両方のブラウザで機能する代替コードはありますか?
例:
値として渡す$%^&
と、エンコード後、 になり%24%25%5E%26
ます。java.net.URLDecoder.decode() メソッドでデコードすると、$%%5E&
これが実際の値です。
var str = "$%^&";
var valueJS = encodeURI(str);
var valueJS = encodeURIComponent(valueJS); // to encode even those chars in valueJS that were not encoded by encodeURI()
これはエンコードされた値です-
String value = "%2524%2525%255E%2526";
while(value.matches(".*%25[A-Za-z0-9]*")) {
value = value.replace("%25", "%"); // manually trying to achieve %24%25%5E%26
}
value = java.net.URLDecoder(value, "UTF-8");
// I was expecting the decoded value to be $%^&, but it turns out to be $%%5E&