Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/logging/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用Base64编码的优点是什么?_Base64 - Fatal编程技术网

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

使用Base64编码的优点是什么?,base64,Base64,使用编码的优点是什么 我想更好地理解它。我真的需要它吗?我不能简单地使用纯字符串吗 我听说这种编码可以比原始编码大30%(至少对于图像而言)。base64编码的主要使用情况是当您希望使用一组受限的字符存储或传输数据时;i、 e.当您不能在每个字节中传递任意值时。最初一些协议只允许7位数据,有时仅允许6位数据 Base64允许将8位数据编码为6位,以便在这些类型的链路上传输 电子邮件就是一个例子。是否使用它取决于您使用它的目的 我主要使用它对二进制数据进行编码,以通过一种真正为文本文件创建的机制。

使用编码的优点是什么

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


我听说这种编码可以比原始编码大30%(至少对于图像而言)。

base64编码的主要使用情况是当您希望使用一组受限的字符存储或传输数据时;i、 e.当您不能在每个字节中传递任意值时。

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

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


电子邮件就是一个例子。

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

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


如果您有一些已经是文本的内容,并且只想将其传递到某个地方,我可能不会使用它。

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

我用它来传递文件,这些文件很容易被电子邮件程序破坏,因为它们看起来像文本文件(例如用于重播的HL7转录本)。


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


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

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


如果您的情况能够处理本机二进制数据,那么在速度等方面很可能会产生更好的结果,但如果不能,Base64很可能是最好的选择。JSON是一个很好的例子,说明了什么时候您可以从这样的东西中受益,或者什么时候它需要存储在某个文本字段中。请提供更多详细信息,我们可以提供更好的定制答案。

主要是7位,因为第8位用于许多串行传输协议的奇偶校验。您不能在电子邮件中使用二进制字符串,因为它可能会与控制字符冲突。此外,如果您想通过字符串协议(如JSON)发送二进制数据因为引号0x00等不需要的字符,bianry可能会打断你的字符串。Rafal:这基本上是一个“受限字符集”的实例。我希望我也能批准你的答案。回答得很好。如果有像希伯来语或阿拉伯语这样的非拉丁语。将文本编码为base64只生成ASCII字符?@Costa对base64上的任何内容进行编码都只生成ASCII字符。Base64只使用A-Z A-Z 0-9和其中两种的组合:
/
+
-
~
通常:
/
+
Base64编码每3字节二进制数据发出4字节可打印数据。如果您还定期输入换行符(例如,邮件程序将换行符长度限制为64或72个字符),则换行符将多输入一个字节48或54(除非您在每行获得2个字节时使用CRLF换行符)。对于缺点,请查看此处,使用此链接以明确理解。
<img alt="Embedded Image" 
  src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADIA..." />