python - 为什么 Dart 和 Python 之间的 base85 不匹配?
问题描述
Python代码
from base64 import b85decode
from base64 import b85encode
encoded=b85encode(b'Hello, world!!!!')
print(encoded.decode('utf-8'))
输出:
'NM&qnZ!92pZ*pv8At50l'
飞镖代码
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
揭示:Summary: You are probably looking for pyzmq... Requires: pyzmq
. 感谢@SumitKumar 的收获。
参考:
推荐阅读
- javascript - 有没有办法在父容器上编写事件侦听器以捕获其所有输入元素上的焦点/模糊事件?
- javascript - 检查所选文本的 execCommand
- java - 如何在流式传输时重命名放置在远程位置的文件
- javascript - D3.js 的鼠标悬停事件在 Leaflet 中不起作用
- android - Kotlin:如何将 ImageView 的内容保存到内部/外部存储器?
- android - Fragment 阻止父布局中的 TextView 渲染
- entity-framework - 如何为通过中间表连接的两个表正确使用 LINQ groupby?
- html - DIV 未正确对齐
- c++ - 从 Amazon FreeRTOS 的系列问题中读取
- android - React Native 应用程序的先前工作(已部署版本)无法构建的可能原因有哪些?