python - 为什么 Dart 和 Python 之间的 base85 不匹配?

标签 python python-3.x dart base85

Python代码

from base64 import b85decode
from base64 import b85encode
encoded=b85encode(b'Hello, world!!!!')
print(encoded.decode('utf-8'))

输出:

'NM&qnZ!92pZ*pv8At50l'

Dart 代码

import 'dart:io';
import 'dart:typed_data';
import 'package:base85/base85.dart';

void main() {
  var codec = Base85Codec(Alphabets.z85);
  var encode = codec.encode(Uint8List.fromList('Hello, world!!!!'.codeUnits));
  print(encode);
}

输出:

nm=QNz.92Pz/PV8aT50L

字母大小写互换,非字母也有不同的映射。

我可能遗漏了一些东西。

最佳答案

因为您实际上根本没有在 dart 示例中使用 ascii85。比较这个(需要 pip install pyzmq*):

from zmq.utils import z85
z85.encode(b"Hello, world!!!!")
#  b'nm=QNz.92Pz/PV8aT50L'

z85 和 ascii85 略有不同。

*pip show zmq 显示:总结:您可能正在寻找 pyzmq...需要:pyzmq。感谢@SumitKumar 的捕获。

引用资料:

https://rfc.zeromq.org/spec/32/

关于python - 为什么 Dart 和 Python 之间的 base85 不匹配?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69507019/

相关文章:

json - flutter中使用json_serializable反序列化json对象

javascript - 尝试在 JavaScript 中实现 Python 风格的 len()

python - 如何导入/打开 numpy 模块到 IDLE

Python3 在字节数组中搜索

python-3.x - 没有名为 pandas_datareader 的模块

dart - 使用 Dart :web_audio

Python numpy 参数排序

python - 如何使用 pyqt4 清除带有索引的表小部件中的数据

python-3.x - 如何将 parquet 文件读入 python 字典数组?

dart - 在这种情况下,中心和扩展之间的区别?