首页 > 解决方案 > base64 编码是否保留字母顺序?

问题描述

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

如果没有,是否有任何其他编码算法可以为我提供这种行为?

标签: sortingencodingbase64

解决方案


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

这在 RFC 4648 中进行了解释,它还定义了一种称为 base32hex 的编码,它特别保证它保持排序顺序。

如果您想坚持使用官方标准,base32hex 是我所知道的最佳选择。

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


推荐阅读