Pet*_*ner 10 base64 encoding decoding
我需要编码一个大约1000个字符的字符串,可以是任何字节值(00-FF).我不想使用Hex,因为它不够密集.我理解它是base64的问题,它包含+ /和=这是我在我的应用程序中无法容忍的字符.
有什么建议?
小智 11
选择你的替代品.考虑一些其他变体:来自维基百科的base64 Variant表.
虽然base64编码器/解码器是微不足道的,但替换替代可以在现有 base64编码/解码函数(内部包装器)的简单的前/后处理步骤中完成 - 无需重新发明轮子(完全).或者,更好的是,正如Skeet先生指出的那样,找到一个具有足够灵活性的现有库.
如果您没有其他合适的"有趣"字符可供选择(可能所有其他字符都无效,只留下62个字母数字字符可供选择),您可以随时使用转义字符(~3/64?)增加规模.例如,0(A)将被编码为"AA",62(+)将被编码为"AB"并且63(/)将被编码为"AC".如果您不想从头开始编写自己的编码器/解码器,这也可以作为前/后步骤完成.这种方法的缺点是输出字符与输入字节的比率不固定.
Base58Check是一个选项.它开始成为加密货币地址事实上的标准.
与Base64相比的基本改进:
[0-9a-zA-Z]0OIl/ 0OIl在比特币地址实用程序是一个实现示例; 面向比特币.
注意:新的事实标准可能不足以满足您的需求.目前还不清楚Base58Check编码方法是否会在当前协议中形式化.
正如 Ciaran 所说,base64 并不是很难实现 - 但您可能需要查看现有的库,它们允许您指定要使用的自定义字符集。我很确定那里有很多,但您还没有指定您需要哪个平台。
基本上,您只需要 65 个可接受的ASCII 字符- 最好除了换行符之外。
| 归档时间: |
|
| 查看次数: |
14978 次 |
| 最近记录: |