gpt4 book ai didi

java - 编码解码冒险

转载 作者:行者123 更新时间:2023-12-01 14:46:56 26 4
gpt4 key购买 nike

我尝试使用 encodeURI()encodeURIComponent() 函数对 javascript 中的特殊字符进行编码,并使用 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&

最佳答案

已修复。已添加 2 <meta>标签

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

并使用了 javascript escape()而不是encodeURI()encodeURIComponent()

关于java - 编码解码冒险,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15339964/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com