当前位置: 首页 > Web前端 > CSS

ASCII和Base64

时间:2023-03-30 17:53:07 CSS

的介绍在工作中遇到图像转换的问题,遇到了几个概念,查了一些资料,记录在这里。OriginMyGitHubASCIIASCII的全称是AmericanStandardCodeforInformationInterchange(美国信息交换标准代码),是一种电子通讯的字符编码标准。ASCII代码表示计算机、电信设备和其他设备中的文本。大多数现代字符编码都基于ASCII,尽管它们支持许多其他字符。ASCII是从电报码发展而来的。第一个商业用途是贝尔数据服务推广的7位电传打字代码。ASCII标准的工作始于1960年10月6日,美国标准协会(ASA)(现为美国国家标准协会或ANSI)X3.2小组委员会召开了第一次会议。1963年,该标准的第一版发布,1967年进行了重大修订,最近一次更新是在1986年。Bell和ASCII代码都是为了相对于早期的电报代码更容易对列表进行排序而提出的,并为电传打字机以外的设备。ASCII最初是基于英文字母,将128个特定字符编码为7位整数,如下图所示,具体对应关系可以在这里找到。可打印95个编码字符,这些字符包括:0-9、a-z、A-Z和标点符号。此外,最初的ASCII规范包括33个源自电传打字机的非打印控制代码。其中大部分已过时,但有些仍在常用,例如回车、换行和制表符代码。例如,小写字母i在ASCII中的二进制表示为11001001,十六进制表示为69,十进制表示为105。Base64Base64是一组类似于二进制转文本的编码方案,将ASCII中表示二进制的字符串转换为base64表示。术语Base64源自MIME内容转换编码。每个Base64数字正好代表6位数据。三个8位字节可以用四个6位Base64数字表示。选择用于表示基数的64位值的特定64字符集因实现而异。一般策略是选择64个最常用和可打印的字符。这种组合使得数据在信息系统之间传输时不太可能被修改,例如邮件,传统上没有以标准的8位格式进行编码。例如,MIME的Base64实现使用A-Z、a-z和0-9作为前62个值。其他变体也有这个特点,但最后两个值在符号的选择上有所不同。一个例子是UTF-7。这种编码的最早实现是为相同操作系统之间的拨号通信而创建的。因此,可以对哪些字符可以安全使用做出更多假设。例如,uuencode工具使用小写字符、数字和许多标点符号,但不使用小写。下面是一个用Base64实现的。IndexCharIndexCharIndexCharIndexChar0A16Q32g48w1B17R33h49x2C18S34i50y3D19T35j51z4E20U36k5205F21V37l5316G22W38m5427H23X39n5538I24Y40o5649J25Z41p57510K26a42q58611L27b43r59712M28c44s60813N29d45t61914O30e46u62+15P31f47v63/示例SourceText(ASCII)ManOctets77(0x4d)97(0x61)110(0x6e)Bits010011010110000101101110Base64encodedSextets1922546CharacterTWFuOctets84(0x54)87(0x57)70(0x46)117(0x75)参考资料ASCIIbase64ASCIICode