为什么URL在Base32中编码?

时间:2012-06-13 14:14:01

标签: url uri base base32

我认为这是一个非常简短的问题,但我不确定我是否明白这一点。

为什么在Base32中编码网址?它有什么好处,有什么缺点?

1 个答案:

答案 0 :(得分:4)

有时需要对URL数据进行编码以封装不易类型化的内容,例如“ÓĆ”,甚至根本不包含文本表示的二进制数据。将它放在查询字符串中是有问题的。有些服务器不了解查询字符串中的Unicode文本,但这种情况肯定会越来越好。

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

那为什么不是base64? Base64几乎总是具有更短的编码长度。 Base64的弱点在于它使用大写和小写字母进行编码。 Aa之间存在区别。而Base32只使用一个字母的外壳,因此它可以不区分大小写。通常(但不总是),URL不区分大小写,并且使用Base32使该概念保持活动状态。当编码数据打算输入,朗读等时,这种区别很有用。

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