base64编码是否保留字母顺序?

时间:2018-11-14 13:23:55

标签: sorting encoding base64

假设我有一个100个单词的列表,按字母顺序排序。 如果我对这些单词进行base64编码,然后再次对结果列表进行排序,那么元素相同时的排序顺序是否会如此?

如果没有,是否还有其他编码算法可以为我提供这种功能?

1 个答案:

答案 0 :(得分:2)

否,base64不会保留未编码字符串的排序顺序。

这在RFC 4648 which also defines an encoding called base32hex中进行了解释,该声明特别地保证了其保持排序顺序。

如果您要遵守官方标准,base32hex是我所知道的最佳选择。

但是,如果编码的空间效率很重要,那么从base64降到base32可能有点令人讨厌。如果是这种情况,您总是可以创建自己的编码(这并不困难)或采用其他人的编码(JavaScript示例:https://github.com/dominictarr/d64)。