引子

在工作中,遇到了图片转换的问题,碰到了几个概念,查了点资料,在此记录一下。

  • Origin
  • My GitHub

ASCII

ASCII 的全称是 American Standard Code for Information Interchange(美国标准信息交换码),是电子通信的字符编码标准。ASCII 码表示计算机、电信设备和其它设备中的文本。大多数现代字符编码的制订都是基于 ASCII,尽管它们支持很多其它的字符。

ASCII 是从电报码中发展出来的。第一次商业使用是由贝尔数据服务公司推广的 7 位电传打字机码。ASCII 标准的工作始于 1960.10.06,美国标准协会(ASA)(现为美国国家标准协会或简称 ANSI)X3.2 小组委员会召开了第一次会议。在 1963 年,标准的第一版本发布,在 1967 年进行了重大修改,最近的更新是在 1986 年。相对于早期的电报码,推荐的贝尔码和 ASCII 码都是为了更加方便的对列表排序,并为电传打字机以外的设备添加了一些功能。

最初基于英语字母表,ASCII 编码 128 个特定的字符为 7 位整数,如下面的图表所示,具体对应可见这里。

95 个编码的字符是可打印,这些字符包括:0-9、a-z、A-Z 和标点符号。此外,最初的 ASCII 规范包括 33 个非打印控制代码,这些代码源自电传打字机。其中大多数都已废弃,尽管有一些仍然在普遍使用,如回车、换行和制表符代码。

举个例子,小写字母 i 在 ASCII 编码中用二进制表示为 11001001,十六进制表示为 69,十进制表示为 105。

Base64

Base64 是一组跟二进制转换为文本类似的编码方案,将 ASCII 中表示二进制的字符串转换为基数为 64 的表示。术语 Base64 源自 MIME 内容转换编码。每个 Base64 数字正好代表 6 位数据。3 个 8 位字节能够用 4 个 6 位 Base64 数字表示。

选择用于表示基数的 64 位值的 64 个字符的特定集合因实现而异。通常的策略是选择 64 个大多数使用且可打印的字符。这种组合方式使得数据在信息系统间传输时,不太可能被修改,例如邮件,传统上不是标准的 8 位编码。举个例子,MIME 的 Base64 实现方案是使用 A-Z、a-z和0-9作为前 62 个值,其它变体同样共享这个特性,但最后的两个值在选择符号上不同,有一个例子就是 UTF-7。

最早这种编码的实现是为了相同操作系统间,进行拨号通信创建。因此可以对那些字符可以安全使用进行更多的假设。例如,uuencode 工具使用小写字符、数字和很多标点符号字符,但不使用小写。

参考资料

  • ASCII
  • base64
  • ASCII Code

ASCII 和 Base64相关推荐

  1. ASCII + Url + Base64

    ASCII Url path: space->%20 + queryString: space->+/%20 +->%2B Base64

  2. ctf中ASCII,base64几种密码的基本样式

    发现在ctf中经常会出现各种样式的码需要我们来进行转换,这里大概的总结一下各个码的特点 +AGsAZQB5ADoAaQBhAG0AdQB0AGYANwBlAG4AYwBvAGQAZQBk- 这种是典型 ...

  3. android 图片转base64内存变大了_开发者最喜爱的图片编码格式:opencv编码,解码,显示base64图片...

    由于图片格式尺寸较大,在互联网上若想传递一张图片,往往会 把图片进行格式转换,然后进行数据传输,图片格式往往会转换为base64编码图片 base64编码图片 BASE64编码表 base64编码 是 ...

  4. btoa java_javascript atob()函数和 btoa()函数-Base64的编码与解码-Go语言中文社区

    在 JavaScript 中,有两个函数被分别用来处理解码和编码 base64 字符串: atob() //ASCII to Base64 btoa() //Base64 to ASCII atob( ...

  5. javascript atob()函数和 btoa()函数-Base64的编码与解码

    在 JavaScript 中,有两个函数被分别用来处理解码和编码 base64 字符串: atob() //ASCII to Base64 btoa() //Base64 to ASCII atob( ...

  6. [微信小程序] 单张、多张图片上传(图片转base64格式)实践经验

    本文首发自个人自有博客:[FaxMiao个人博客],一个关注Web前端开发技术.关注用户体验.记录前端点滴,坚持更多原创,为大家提供高质量技术博文! 定义初始数据: data: {imgList: [ ...

  7. Base64加解密实现

    文章目录 一.说明 1.base64 2.转换的思路 加密思路 解密思路 二.术语和参考资料 ASCII对照表 Base64表 三.整体设计 类接口 四.示例 1.对字符'j'进行加密 2.对&quo ...

  8. .NET Core 常用加密和Hash工具NETCore.Encrypt

    前言 在日常开发过程中,不可避免的涉及到数据加密解密(Hash)操作,所以就有想法开发通用工具,NETCore.Encrypt就诞生了.目前NETCore.Encrypt只支持.NET Core ,工 ...

  9. 在NodeJS中操作文件常见的API

    阅读目录 一:如何读整个文件内容? 二:如何写入整个文件内容? 三:如何在文件中的指定位置处读入内容? 四:如何在文件中的指定位置处写入内容? 五:如何创建与读取目录? 六:如何查看与修改文件或目录的 ...

最新文章

  1. java通用日志记录_JAVA实现通用日志记录方法
  2. cxGrid功能_用于备查【转】
  3. 站长手记20100920部署更新
  4. #0 scrapy爬虫学习中遇到的坑记录
  5. 睡觉时,禁带6种东西,最后一点最严重,可能致命
  6. 仅用 10 天设计的 JavaScript,凭什么成为程序员最受欢迎的编程语言?
  7. 解决IDEA导入项目后无法运行的问题
  8. go 对象json转map
  9. ArcGIS工具 - 批量删除空图层
  10. 百度地图之根据显示范围获取地图图片
  11. 【毕业设计】答 辩 技 巧 一(以一个过来人的身份,祝各位答辩 过 过 过)
  12. 面向产业互联网eSIM终端的激活方案研究
  13. 6.openCV调整图像大小新思路(cv2.resize和imutils.resize)
  14. NHibernate in Action(第一章1.2)
  15. FreeMarkerBase
  16. tableau计算之(三)表计算——分区/寻址——手动计算/快速计算
  17. pandownload + speedpan下载器 tampermonkey + IDM下载器
  18. python将A文件夹内的所有内容原封不动复制搬运到B文件夹
  19. java轮子_java造车轮是什么意思?
  20. DOM4J 不兼容的类型: JAVA.UTIL.LIST (ORG.DOM4J.NODE)无法转换为JAVA.UTIL.LIST(ORG.DOM4J.ELEMENT)

热门文章

  1. Mathtype如何打出偏导、一撇
  2. Unity3d 提取mesh并保存成asset文件
  3. 暴走后清醒(2006版)
  4. 有看了些很好笑的笑话
  5. Blender:下载并安装文本编辑器(Text Editor)代码自动补全插件
  6. Photoshop CS2 视频教程-PS反选(转)
  7. 网页切换视频不自动暂停
  8. php 单字函数,php对UTF8字体串进行单字分割返回数组
  9. 4.13 使用色调分离命令制作矢量卡通艺术效果 [原创Ps教程]
  10. 图像正投影与重建初认识