gil*_*mad 90 language-agnostic binary encoding
为什么每个人都使用base 64在网上传输二进制数据?我问,因为ASCII字符集有128个字符,理论上可以代表128个字符......
pep*_*uan 105
问题是ASCII字符集的至少32个字符是"控制字符",可以由接收终端解释.例如,有BEL(钟)字符使接收终端发出声响.SOT(传输开始)和EOT(传输结束)字符完全符合他们的名字所暗示的字符.并且不要忘记字符CR和LF,它们可能在数据结构如何序列化/展平为流中具有特殊含义.
Adobe创建了Base85编码以在ASCII字符集中使用更多字符,但AFAIK受专利保护.
dri*_*iis 65
因为这128个字符中的一些是不可打印的(主要是那些低于代码点0x20的字符).因此,它们不能可靠地通过电线传输.而且,如果你超过代码点128,由于跨系统使用不同的编码,你可能会遇到编码问题.
小智 12
前32个字符是控制字符绝对没有相关性,因为你不必使用它们来获得128个字符.我们有256个字符可供选择,只有前32个是控制字符.留下192个字符,因此在不使用控制字符的情况下完全可以使用128个字符.
原因如下:它必须是看起来相同的东西,并且无论在何处都可以复制和粘贴.因此,它必须是在任何论坛,聊天,电子邮件等上显示相同的字符.这意味着我们不能使用论坛/聊天/电子邮件客户端通常用于格式化或忽略的字符.无论字体,语言和区域设置如何,它也必须是相同的字符.
这就是原因!
Joh*_*ooy 10
Base64很常见,因为它解决了各种问题(几乎可以在任何地方使用)
您无需担心传输是否为8位清洁.
编码中的所有字符都是可打印的.你可以看到它们.您可以复制并粘贴它们.您可以在URL(特定变体)中使用它们.等等
固定编码大小.您知道m字节总是可以编码为n字节.
每个人都听说过它 - 它得到了广泛的支持,很多库,很容易与之互操作.
Base128没有那么多优点.
它看起来像8位清洁 - 但回想一下base64使用65个符号.如果没有带外字符,您将无法获得固定编码大小的好处.如果使用带外字符,则不能再进行8位清理.
尽管如此,这并非全都是消极的.
base128比base64更容易编码/解码 - 你只需使用移位和掩码.对嵌入式实现很重要
通过使用更多可用位,base128比base64更有效地使用传输.
人们确实使用base128 - 我现在正在使用它.它并不常见.
| 归档时间: |
|
| 查看次数: |
54602 次 |
| 最近记录: |