js内部支持三组编码和解码函数,都是全局函数,可以直接使用。
内部没有html编码和解码,一般是自行编写函数。也没有md5等加密解密函数,需要引入响应的工具js。另外支持base64的编码和解码,window.btoa()和window.atob函数完成。
1、escape函数
escape('ab123*@-_+./时间\'\"%()')
//ab123*@-_+./%u65F6%u95F4%27%22%25%28%29
- 可对字符串进行编码,该方法不会对 ASCII 字母和数字进行编码,也不会对下面这些 ASCII 标点符号进行编码: * @ – _ + . / 。其他所有的字符都会被转义序列替换。
- 对ascii字符编码相当于url编码形式,即%+ascii编号。对非ascii字符以%u为前缀,+unicode编号。
2、unescape函数
unescape(escape('ab123*@-_+./时间\'\"%()'))
//ab123*@-_+./时间'"%()
- 可对通过 escape() 编码的字符串进行解码。
- 注意:unescape() 函数已经从 Web 标准中删除,所以尽量不使用该函数,可以使用 decodeURI 或 decodeURIComponent 代替。
3、encodeURI函数
encodeURI('abc123,/?:@&=+$#时间\'\"%()')
//abc123,/?:@&=+$#%E6%97%B6%E9%97%B4'%22%25()
- 可把字符串作为 URI 进行编码。
- 对以下在 URI 中具有特殊含义的 ASCII 标点符号,encodeURI() 函数是不会进行转义的: ,/ ? : @ & = + $ #
- 对ascii字符编码相当于url编码形式,即%+ascii编号。对非ascii字符是先utf-8编码,然后在每个字节前加%前缀
4、decodeURI函数
decodeURI(encodeURI('abc123,/?:@&=+$#时间\'\"%()'))
//abc123,/?:@&=+$#时间'"%()
- 可对通过 encodeURI() 编码的字符串进行解码。
5、encodeURIComponent函数
encodeURIComponent('abc123-_.!~*\'()时间\"%:;/?@&=+$,#')
//abc123-_.!~*'()%E6%97%B6%E9%97%B4%22%25%3A%3B%2F%3F%40%26%3D%2B%24%2C%23
- 可把字符串作为 URI 组件进行编码。
- 该方法不会对 ASCII 字母和数字进行编码,也不会对这些 ASCII 标点符号进行编码: – _ . ! ~ * ‘ ( ) 。
- 对ascii字符编码相当于url编码形式,即%+ascii编号。对非ascii字符是先utf-8编码,然后在每个字节前加%前缀
6、decodeURIComponent函数
decodeURIComponent(encodeURIComponent('abc123-_.!~*\'()时间\"%:;/?@&=+$,#'))
//abc123-_.!~*'()时间"%:;/?@&=+$,#
- 可对通过 encodeURI() 编码的字符串进行解码。
7、window.btoa函数
btoa('ab')
//YWI=
btoa('时间')
//
- 用于创建一个 base-64 编码的字符串。
- 该方法使用 “A-Z”, “a-z”, “0-9”, “+”, “/” 和 “=” 字符来编码字符串。
- 注意,其并不能直接对非ascii字符编码,一般需要先将非ascii字符转为url编码,任一编码函数均可,解码时使用对应的解码函数即可
8、window.atob函数
atob(btoa('ab'))
//ab
- 对btoa函数编码后的文本进行解码
btoa(encodeURIComponent('ab时间'))
//YWIlRTYlOTclQjYlRTklOTclQjQ=
decodeURIComponent(atob('YWIlRTYlOTclQjYlRTklOTclQjQ='))
//ab时间
标签:编码,函数,字符,解码,base64,js,abc123,ascii
From: https://www.cnblogs.com/wd404/p/17335605.html