Encoding Base64编码的真正目的是什么?

Encoding Base64编码的真正目的是什么?,encoding,base64,Encoding,Base64,为什么我们有Base64编码?我是一个初学者,我真的不明白你为什么要混淆成其他字节(除非它是加密)。在我读过的一本书中,当二进制传输不可能时,Base64编码很有用。当我们发布表单时,它是经过编码的。但是为什么我们要把字节转换成字母呢?我们不能把字节转换成字符串格式,中间留一个空格吗?例如,00000001 00000004?或者干脆0000000 10000004没有任何空间,因为字节总是以8对的形式出现?Base64或多或少是一种紧凑的方式来传输(实际上是编码,但目标是传输)任何类型的二进制

为什么我们有Base64编码?我是一个初学者,我真的不明白你为什么要混淆成其他字节(除非它是加密)。在我读过的一本书中,当二进制传输不可能时,Base64编码很有用。当我们发布表单时,它是经过编码的。但是为什么我们要把字节转换成字母呢?我们不能把字节转换成字符串格式,中间留一个空格吗?例如,
00000001 00000004
?或者干脆
0000000 10000004
没有任何空间,因为字节总是以8对的形式出现?

Base64或多或少是一种紧凑的方式来传输(实际上是编码,但目标是传输)任何类型的二进制数据

一般规则是选择一组64个字符,这些字符既是大多数编码所共有的子集的一部分,也是可打印的

这是一个非常普遍的目的,共同的需求是不要浪费超过需要的空间

从历史上看,这是基于这样一个事实:用于将字符存储到字节中的(几乎)所有编码都有一个共同的子集,并且在简单的数据传输过程中(例如复制粘贴emailsend emailreceive复制粘贴序列),许多2^8个可能的字节都有丢失或转换的风险


(请转到Brian的评论,我只是让它更完整,希望更清楚)。

Base64是一种将二进制数据编码成几乎所有计算机系统都知道的ASCII字符集的方法,以便在传输数据时不会丢失或修改内容本身。 例如,邮件系统不能处理二进制数据,因为它们需要ASCII(文本)数据。因此,如果您想要传输一个图像或其他文件,它将因为处理数据的方式而损坏


注意:base64编码不是加密的方式,也不是压缩数据的方式。事实上,base64编码的数据块比原始数据块大1.333倍。这只是确保在传输过程中不会丢失或修改数据的一种方法。

Base64是一种通过只允许打印字符的介质来表示和传输二进制数据的机制。它是最流行的“基本编码”形式,其他已知使用的是Base16和Base32

Base64的需求源于需要将二进制内容附加到电子邮件中,如图像、视频或任意二进制内容。由于SMTP[RFC 5321]只允许消息中包含7位US-ASCII字符,因此需要使用7位ASCII字符表示这些二进制八位字节流


希望这能回答问题

,因为您刚刚将1字节转换为8,而不是像base64那样将3字节转换为4字节(如果内存正常的话)。带宽是有限的。你混淆了位(一个字节有8位)和字节,它们可以以任何形式分组。不,现在还为时过早,我不想给出一个完整的答案。这很好。Base64编码的数据正好是原始数据的1.333(3)倍+额外的0-3个字符,具体取决于输入数据的长度模4。这是因为每个base64编码字符存储6位的信息(64个不同的字符)。前后数据仍然是二进制的。那么为什么数据会丢失呢