使用Base64编码有什么好处?

Ism*_*ael 37 base64

使用Base64编码有什么好处?

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

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

Ada*_*vis 47

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

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

电子邮件就是一个例子.

  • 大多数是7位,因为第8位用于许多串行传输协议的奇偶校验. (3认同)
  • 我从未想过的细节.我觉得更新了. (2认同)

Meh*_*ari 44

base64编码的主要用例是当您想要使用一组受限制的字符存储或传输数据时; 即当你不能在每个字节中传递任意值时.

  • 而且,如果你想通过字符串协议(如JSON)发送二进制数据,其中bianry可能会因为不需要的字符(如引号0x00等)而破坏您的字符串... (7认同)
  • Rafal:这基本上是“受限字符集”的一个实例。 (2认同)
  • 如果有非拉丁语,如希伯来语或阿拉伯语。将文本编码为 base64 只会产生 ASCII 字符? (2认同)
  • @64上的@Costa编码只生成ASCII.Base64只使用AZ az 0-9和其中两个的组合:`/``+``-`````````````通常:`/``+` (2认同)

小智 14

<img alt="Embedded Image" 
  src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADIA..." />
Run Code Online (Sandbox Code Playgroud)

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

Base64解码


Pet*_*sen 6

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


Mar*_*llo 6

就像有人说的那样,Base64 编码的优点是可以将数据从二进制传输到(最常见的)ASCII 字符。由于接收端可以处理 ASCII 的可能性,它使其成为通过文本流传输二进制数据的好方法。

如果您的情况可以处理本机二进制数据,那么在速度等方面很可能会产生更好的结果,但如果不能,则 Base64 很可能是要走的路。JSON 是一个很好的例子,说明何时可以从此类内容中受益,或者何时需要将其存储在某个文本字段中。给我们更多细节,我们可以提供更好的定制答案。