在JavaScript中,可以使用以下两个方法来进行字符串的编码和解码:
encodeURIComponent()
和decodeURIComponent()
encodeURIComponent()
方法用于对整个URI(统一资源标识符)进行编码,其中除了字母、数字和特定的字符(- _ . ! ~ * ' ( )
)之外的所有字符都会被替换为%xx的形式,其中xx是字符的十六进制ASCII码值。
示例:
var originalString = "Hello, 你好!";
var encodedString = encodeURIComponent(originalString);
console.log(encodedString); // 输出:Hello%2C%20%E4%BD%A0%E5%A5%BD%EF%BC%81
var decodedString = decodeURIComponent(encodedString);
console.log(decodedString); // 输出:Hello, 你好!
encodeURI()
和decodeURI()
encodeURI()
方法用于对整个URI进行编码,但不包括特定字符如:/?#[]@!$&'()*+,;=
。该方法通常用于编码URL而不影响主机部分,因此它在URL中保留了冒号、正斜杠和问号等字符。
示例:
var originalURL = "https://example.com/search?q=JavaScript编码";
var encodedURL = encodeURI(originalURL);
console.log(encodedURL); // 输出:https://example.com/search?q=JavaScript%E7%BC%96%E7%A0%81
var decodedURL = decodeURI(encodedURL);
console.log(decodedURL); // 输出:https://example.com/search?q=JavaScript编码
需要注意的是,以上方法只能进行单层的编码和解码操作。如果需要进行多层次的编码或解码,可以使用上述方法的组合,或者借助第三方库如querystring
或URLSearchParams
来处理更复杂的情况。