我想在 JavaScript 中将字符串编码为 UTF-8
。在 java 中,我们使用 URLEncoder.encode("String", "UTF-8")
来实现这一点。
我知道我们可以使用 encodeURI
或 encodeURIComponent
但它产生的输出与 URLEncoder.encode
不同
任何人都可以建议任何可用的 JS 方法,可用于实现与 URLEncoder.encode
相同的输出。
注意: 由于限制我无法使用 jQuery。
最佳答案
我不知道这个 javaURLEncode()
函数是否与 Java 的 URLEncoder.encode
方法完全匹配,但它可能与您的结果很接近正在寻找:
function javaURLEncode(str) {
return encodeURI(str)
.replace(/%20/g, "+")
.replace(/!/g, "%21")
.replace(/'/g, "%27")
.replace(/\(/g, "%28")
.replace(/\)/g, "%29")
.replace(/~/g, "%7E");
}
var testString = "It's ~ (crazy)!";
var jsEscape = escape(testString);
var jsEncodeURI = encodeURI(testString);
var jsEncodeURIComponent = encodeURIComponent(testString);
var javaURLEncoder = javaURLEncode(testString);
alert("Original: " + testString + "\n" +
"JS escape: " + jsEscape + "\n" +
"JS encodeURI: " + jsEncodeURI + "\n" +
"JS encodeURIComponent: " + jsEncodeURIComponent + "\n" +
"Java URLEncoder.encode: " + javaURLEncoder);
关于JavaScript 相当于 Java 的 URLEncoder.encode ("String", "UTF-8"),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26311947/