编程语言
首页 > 编程语言> > js node python btoa atob

js node python btoa atob

作者:互联网

btoa和atob是window对象的两个函数,其中btoa是binary to ASCII,用于将binary的数据用ASCII码表示,即Base64的编码过程,而atob则是ASCII to binary,用于将ASCII码解析成binary数据,即Base64的解码过程[1]  

    

    ASCII码大家基本都知道,这里讲下binary是什么。

 

   binary 是JS字符集的另外一个子集,它类似于 ASCII 字符集,但是字符的码点(charCode)不再限制到 127, 它包含了255 以内的字符。binary string设计的目的不是用于代表字符, 而是代表二进制数据。由 binary string 代表的二进制数据大小是原始数据的两倍,然而这对于最终用户是不可见的, 因为JavaScript strings 的长度是以2字节为单位进行计算的。比如, "Hello world" 这个字符串属于 ASCII 子集, 而 ÀÈÌÒÙ 不属于ASCII码[2],但属于binary。

 

    所以btoa和atob其实还涉及了编码问题,我们只需要找出相同编码进行替换即可。在node.js环境中,提供了一个 Buffer 类,用于操作二进制及Base64转码。而在Python环境中,有一个 Latin1 编码[3]与JS的binary相同,因此可以构造代码了。

代码实现

一、node.js环境

    1.直接安装btoa-atob库(不推荐)

    2.通过Buffer类实现转换


二、Python环境

 

    通过Latin1编码进行转换


三、成果展示

标签:node,binary,编码,python,btoa,js,atob,ASCII
来源: https://www.cnblogs.com/angdh/p/14397622.html