一直很疑惑 base64 的作用。我们传输文件不管是文本文件还是二进制文件最后都是二进制,文本文件只是对二进制的一种处理而显示出文本。 传输文件时,如果我们是用 ASCII 码传输,传输到对方后,对方也有 ASCII 码解释就可以了。其他编码如 UTF-8 之类也是如此。为什么需要 base64 ?
在网上看到这么一段话:
我们知道在计算机中任何数据都是按 ascii 码存储的,而 ascii 码的 128 ~ 255 之间的值是不可见字符。而在网络上交换数据时,比如说从 A 地传到 B 地,往往要经过多个路由设备,由于不同的设备对字符的处理方式有一些不同,这样那些不可见字符就有可能被处理错误,这是不利于传输的。所以就先把数据先做一个 Base64 编码,统统变成可见字符,这样出错的可能性就大降低了。
这里为什么不同设备处理方式会有不同呢,传输过程中不都是二进制吗,直接把二进制传给对方不就可以了?
怎么说呢,简单说就是多一种技术方式,遇到问题的时候就多一种方法,寸有所长,尺有所短,目前只是没有遇到需要 base64 编码的情况而已,这是目前很流行的一种编码方式,在加密,图像传统,语言的编码兼容上很方便,C++ 和 Golang 的二进制解析明显是不一样的,那 C++ 怎么把解析到的数据传递给 Golang呢? base64 是一种不错的选择......
#2
更多评论