3

我认为这是一个非常简短的问题,但我不确定我是否理解它的重点。

为什么用 Base32 编码 URL?它的好处是什么,它的缺点是什么?

4

1 回答 1

4

有时需要对 URL 数据进行编码以封装不易键入的内容,例如“ÓĆ”,甚至是根本没有文本表示的二进制数据。将其放在查询字符串中是有问题的。一些服务器不理解查询字符串中的 Unicode 文本,尽管这种情况肯定会好转。

因此,数据需要以某种方式进行编码,以便服务器可以正确解释,并且应用程序知道如何使用。Base32 通常用于此目的。它将任何二进制数据编码为该数据的 ASCII 文本表示。当需要原始数据时,将其解码。

那么为什么不用base64呢?Base64 几乎总是具有较短的编码长度。Base64 的弱点是它同时使用大小写字母进行编码。A和之间有区别a。而 Base32 只使用一个字母的大小写,所以它可以不区分大小写。通常(但并非总是),URL 不区分大小写,使用 Base32 可以保持这一概念。当编码数据需要输入、朗读等时,这种区别很有用。

Base32 的缺点是,由于字符集小得多,生成的编码几乎总是更长。

于 2012-06-13T14:50:27.670 回答