0

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&
4

1 に答える 1

1

修正しました。<meta>2個のタグを追加しました

<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">

escape()との代わりにJavaScriptを使用encodeURI()しましたencodeURIComponent()

于 2013-03-12T12:16:52.603 に答える