首页 > 其他分享 >js编码和base64

js编码和base64

时间:2023-04-20 09:37:23浏览次数:41  
标签:编码 函数 字符 解码 base64 js abc123 ascii

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

相关文章

  • js-DOM事件
    1、介绍事件,也可以说是信号,绑定到js代码。当事件发生时,对应的js代码将被执行。HTMLDOM事件对象|菜鸟教程(runoob.com)2、三种声明方式(1)在html元素中声明<buttononclick="alert(/xss/)">点击弹窗</button>(2)js调用属性,赋值为匿名函数document.getElementById('c').oncl......
  • js-DOM元素操作
    注意,html从上往下解析,如果script在html元素之前,并且是直接执行,将获取不到元素,为null。需要使用window.onload事件声明,或者将js写在html元素后面1、innerText和innerHTML属性html元素调用innerText属性,可以获取元素内部的文本内容,也可以直接赋值文本内容读取,不包括指定元素本......
  • js全局属性和函数
    1、js全局属性Infinity:代表正无穷大的数值NaN:指示某个值不是数字undefined:指示未定义的值2、eval函数eval("x=10;y=20;document.write(x*y)")如果参数是一个表达式,eval()函数将执行表达式。如果参数是Javascript语句,eval()将执行Javascript语句。3、判断isFinite():检......
  • 浏览器执行js脚本
    1、四种基本的形式(1)script内部<script>alert('xss')</script>(2)script引入外部js文件<scriptsrc='check.js'></script><scriptsrc=https://www.freebuf.com/freebuf/2.1.0.cd254c064b386bee9d41.js></script>需要注意如果当前页面是......
  • nodejs命令
    npm常用命令:1.npminstallpackage_name:安装指定的Node.js模块。2.npmuninstallpackage_name:卸载指定的Node.js模块。3.npmupdatepackage_name:更新指定的Node.js模块到最新版本。4.npmsearchpackage_name:搜索指定名称的Node.js模块。5.npmlist:列出当前项......
  • js介绍
    1、介绍javascript,简称为js,是一种解释型脚本语言,一般在浏览器运行,被所有现代浏览器支持,在h5中,默认脚本就是js。当然,也可以在其他支持js解析的环境中允许,比如服务端的node.js。js主要可以分为四个部分:基本语法,与es强烈相关,提供支持。包括语法规范、数据类型、运算符、控制结构......
  • js控制结构
    1、if…elseif…else…if(15){alert('abc')}js存在强转bool类型其他与java语法相同2、switch3、while4、dowhile5、forvarlist=[12,22,'abc','ddd']for(leti=0;i<list.length;i++){alert(list[i])}6、增强for7、迭代......
  • js数据类型
    1、介绍js是弱类型语言。2、数值varx1=34.00;//使用小数点来写varx2=34;//不使用小数点来写vary=123e5;//123000003、字符串s='abc's1="abc"s2=/xss///输出/xss/,连同/字符4、布尔varx=true;vary=false;5、数组varcars=newArray......
  • js语法
    1、注释//单行注释/*多行注释*/2、关键字3、标识符由数字、字母和下划线组成,首字符不能是数字4、代码分行使用()包围结构控制提交,使用{}控制代码块5、文本分行不存在/分行,必须使用+......
  • js函数
    1、介绍js函数是通过关键字function进行定义。functionfunctionName(parameters){执行的代码}2、匿名函数函数作为一个变量使用。varx=function(a,b){returna*b};varz=x(4,3);3、参数个数functionp(x1,x2){console.log(x1)console.log(x2)}p(......