假设我有一个按字母顺序排序的100个单词列表。
如果我对这些单词进行base64编码,然后再次对结果进行排序,元素的顺序会保持不变吗?
如果不是,是否有任何其他编码算法可以为我提供此行为?
如果不是,是否有任何其他编码算法可以为我提供此行为?
不,base64不能保留未编码字符串的排序顺序。
这在RFC 4648中有解释,它还定义了一种称为base32hex的编码,该编码明确保证维护排序顺序。
如果你想坚持使用官方标准,我所知道的最好选择是base32hex。
然而,如果编码的空间效率很重要,从base64降到base32会有点令人沮丧。如果是这种情况,你可以创建自己的编码(这并不难)或采用别人的编码(JavaScript示例:https://github.com/dominictarr/d64)。