诚心请教关于 base64 的问题

Chaoxin · 2020-11-03 16:46:33 · 1069 次点击 · 大约8小时之前 开始浏览    置顶
这是一个创建于 2020-11-03 16:46:33 的主题,其中的信息可能已经有所发展或是发生改变。

一直很疑惑 base64 的作用。我们传输文件不管是文本文件还是二进制文件最后都是二进制,文本文件只是对二进制的一种处理而显示出文本。 传输文件时,如果我们是用 ASCII 码传输,传输到对方后,对方也有 ASCII 码解释就可以了。其他编码如 UTF-8 之类也是如此。为什么需要 base64 ?

在网上看到这么一段话:

我们知道在计算机中任何数据都是按 ascii 码存储的,而 ascii 码的 128 ~ 255 之间的值是不可见字符。而在网络上交换数据时,比如说从 A 地传到 B 地,往往要经过多个路由设备,由于不同的设备对字符的处理方式有一些不同,这样那些不可见字符就有可能被处理错误,这是不利于传输的。所以就先把数据先做一个 Base64 编码,统统变成可见字符,这样出错的可能性就大降低了。

这里为什么不同设备处理方式会有不同呢,传输过程中不都是二进制吗,直接把二进制传给对方不就可以了?


有疑问加站长微信联系(非本文作者)

入群交流(和以上内容无关):加入Go大咖交流群,或添加微信:liuxiaoyan-s 备注:入群;或加QQ群:692541889

1069 次点击  
加入收藏 微博
4 回复  |  直到 2020-11-05 15:28:44
polaris
polaris · #1 · 4年之前

比如一个场景:小图片直接放在 img src 中,而不是一个链接。你没法直接放置二进制,可以放置一个 base64 编码的图片

e9571
e9571 · #2 · 4年之前

怎么说呢,简单说就是多一种技术方式,遇到问题的时候就多一种方法,寸有所长,尺有所短,目前只是没有遇到需要 base64 编码的情况而已,这是目前很流行的一种编码方式,在加密,图像传统,语言的编码兼容上很方便,C++ 和 Golang 的二进制解析明显是不一样的,那 C++ 怎么把解析到的数据传递给 Golang呢? base64 是一种不错的选择......

fenglangjuxu
fenglangjuxu · #3 · 4年之前

上面说的很对 我所知的 php和lua golang的aes des加密 都有base64这一步骤

fenglangjuxu
fenglangjuxu · #4 · 4年之前
fenglangjuxufenglangjuxu #3 回复

上面说的很对 我所知的 php和lua golang的aes des加密 都有base64这一步骤

但是具体为啥 我也母鸡啊

添加一条新回复 (您需要 登录 后才能回复 没有账号 ?)
  • 请尽量让自己的回复能够对别人有帮助
  • 支持 Markdown 格式, **粗体**、~~删除线~~、`单行代码`
  • 支持 @ 本站用户;支持表情(输入 : 提示),见 Emoji cheat sheet
  • 图片支持拖拽、截图粘贴等方式上传