我想在JavaScript中将字符串编码为UTF-8
。在java中,我们使用URLEncoder.encode("String", "UTF-8")
来实现这一目标。
我知道我们可以使用encodeURI
或encodeURIComponent
,但它会产生不同的输出than URLEncoder.encode
任何人都可以建议任何可用的JS方法,以实现与URLEncoder.encode
相同的输出。
注意: 由于限制,我无法使用jQuery。
答案 0 :(得分:0)
我不知道这个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);
答案 1 :(得分:0)
发现应该替换另外一个角色 .replace(/ \ $ / g,“%24”)