使用base64编码的优点是什么?

What is the advantage of using Base64 encoding?

使用base64编码有什么好处?

我想更好地理解它。我真的需要它吗?我不能简单地使用纯字符串吗?

我听说编码可以比原来的大30%(至少对于图像)。


最初一些协议只允许7位,有时只允许6位数据。

base64允许将8位数据编码为6位,以便在这些类型的链路上传输。

电子邮件就是一个例子。


base64编码的主要使用情形是,当您希望存储或传输带有一组受限字符的数据时,即,当您不能在每个字节中传递任意值时。


1
2
<img alt="Embedded Image"
  src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADIA..." />

此代码将显示编码图像,但没有人可以从其他网站链接到此图像并使用您的流量。

Base64解码


一个应用程序是在只允许使用字符的上下文中传输二进制数据。例如,在XML文档/传输中。XML-RPC就是一个例子。


如有人所说,base64编码的优点是可以将数据从二进制传输到(最常见的)ASCII字符。由于接收端可以处理ASCII,因此它是一种通过文本流传输二进制数据的好方法。

如果您的情况能够处理本机二进制数据,那么从速度等方面来说,这很可能会产生更好的结果,但如果不能,则最有可能是base64。JSON是一个很好的例子,说明什么时候您可以从这样的事情中获益,或者当它需要存储在某个文本字段中时。给我们更多的细节,我们可以提供一个更好的量身定制的答案。


将blob数据转换为字符串并返回…


我用它来传递那些容易被电子邮件程序咀嚼的文件,因为它们看起来像文本文件(例如用于重播的HL7文本)。


是否使用它取决于您使用它的目的。

我主要用它来编码二进制数据,以通过一种为文本文件真正创建的机制。例如,在传递数字证书请求或检索完成的数字证书时,在这种情况下,通过Web表单上的文本字段将二进制数据作为基64传递通常非常方便。

如果你有一些已经是文本的东西,而你只是想把它传递到某个地方,我可能不会使用它。