JS 中的编码和解码(encode和decode)

JS 中对于文字的编码和解码,涉及3个函数:

  1. escape()和unescape()方法

    escape() 方法能够把 ASCII 之外的所有字符转换为 %xx 或 %uxxxx(x表示十六进制的数字)的转义序列。从 u000 到 u00ff 的 Unicode 字符由转义序列 %xx 替代,其他所有 Unicode 字符由 %uxxxx 序列替代。

    escape ("字符串")  // 编码

    unescape ("字符串")  //  解码

  2.encodeURI() 和 decodeURI() 方法

    ECMAScript v3.0 版本推荐使用 encodeURI() 和 encodeURIComponent() 方法代替 escape() 方法,使用 decodeURI() 和 decodeURIComponent() 方法代替 unescape() 方法。

    encodeURI (URIstring)  // 编码

    decodeURI (URIstring)  //  解码

  3.encodeURICompoent() 和 decodeURICompoent()

    encodeURICompoent() 与 encodeURI() 方法不同。它们的主要区别在于,encodeURICompoent() 方法假定参数是 URI 的一部分,例如,协议、主机名、路径或查询字符串。因此,它将转义用于分隔 URI 各个部分的标点符号。而 encodeURI() 方法仅把它们视为普通的 ASCII 字符,并没有转换。

    encodeURIComponent (URIstring)  // 编码

    decodeURIComponent (URIstring)  // 解码

总结:

  总的来说,转换普通字符串(不包含 / ? = 这类的符号)时,推荐使用方法2,转换URL中的包含 / = ? 这类符号的字符串,推荐使用方法3。

    

原文地址:https://www.cnblogs.com/panic404/p/13031709.html