Base95 是一种用 95 个可见的 ASCII 字符(含空格)表示任意二进制数据的编码方法,编码后的信息密度高于 Base64 编码。
Project description
项目描述
Base95 是一种用 95 个可见的 ASCII 字符(含空格)表示任意二进制数据的编码方法。
该实现使用了从空格(ASCII 32)到波浪符(ASCII 126)这 95 个字符来编码二进制数据,编码后的信息密度高于 Base64 编码。
作者
主页 | Github | PyPi | 微信 | 邮箱 | 捐赠
Bug提交、功能提议
你可以通过 Github-Issues、微信 与我联系。
安装
pip install base95
教程 (查看美化版 👈)
本文将以最简洁的方式向你介绍核心知识,而不会让你被繁琐的术语所淹没。
导入
from base95 import BaseEncoding
编码
base95 = BaseEncoding(95)
bytestring: bytes = '黄河之水天上来'.encode('utf8') # 建构一个字节串
encoded_text: str = base95.encode(bytestring) # 编码成 Base95
解码
decoded_bytes: bytes = base95.decode(encoded_text) # 解码成字节串
任意进制编码
通过上面的例子,聪明的你一定在想:使用 BaseEncoding(n)
是不是可以创建其它进制的编码方法?答案是:是的。
你可以通过 BaseEncoding(n)
方式创建 2 ~ 95 进制的编码方法。
例如:
base2 = BaseEncoding(2)
base50 = BaseEncoding(50)
base80 = BaseEncoding(80)
直接导入常用编码方法
对于一些具有特别意义的编码方法,我们提供了直接导入的方式,而无须使用 BaseEncoding(n)
方式创建。
这些编码方法是:
- base95:使用了 ASCII 中的全部(95 个,含空格)可见字符;
- base90:使用除【单引号、双引号、代码号(`)、空格、反斜杠】这 5 个影响阅读体验的字符以外的 90 个字符;
- base62:仅使用
0~9、a~z、A~Z
这 62 个字符; - base10:仅使用
0~9
这 10 个字符。
你可以直接导入并使用这些常用的编码方法,例如:
from base95 import base90
base90.encode('黄河之水天上来'.encode('utf8'))
当然,你仍然可以通过 BaseEncoding(90)
的方式使用这些编码方法,这两种方式是等价的。
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
base95-2.0.tar.gz
(7.7 kB
view hashes)