2 个版本

0.2.1 2023 年 7 月 17 日
0.2.0 2023 年 7 月 16 日
0.1.0 2023 年 7 月 16 日

#1769 in 文本处理

MIT 许可协议

36KB
394

mojibake

将任意字节编码/解码为最优化的 emoji 序列,以产生最少的图形符号。

描述

这不是一个节省空间的库。

通常服务(Twitter、Mastodon 等)会根据图形符号数量而不是实际字符数量来限制您可以提交的字符数量。单个 emoji 图形符号通常由多字节序列组成,包含多个字符。

因此,如果您可以在更少的图形符号中编码更多数据,您就可以在传输更多信息的同时,拥有比以前更多的字节。

Unicode 规范中至少有 2048 个独特的 emoji 图形符号。因此,emoji 实际上只是一个 11 位无符号整数,并且有额外的步骤。

此库将字节打包到 11 位无符号整数中,然后将其映射到显示为单个图形符号的 Unicode 字符序列。

示例

Original Text:
 Value: Shrek 2 was the greatest film ever made!!
 Bytes: 41,
 Characters: 41,
 Graphemes: 41

Mojibake Encoded:
 Value: 🇻🇳👌🏿🪀🔶🫳🏿🧏🏻📼🕺🏾🤛🏻🦺🤵🏽👦🏼🗄️💆🏿⚗️↗️2️⃣🧥🤵🏻🕤🙆🫚🪙😟🇦🇪🫳🏽🇸🇲😹🏴󠁧󠁢󠁳󠁣󠁴󠁿🛌🏻
 Bytes: 210,
 Characters: 55,
 Graphemes: 30

Decoded Text:
 Value: Shrek 2 was the greatest film ever made!!
 Bytes: 41,
 Characters: 41,
 Graphemes: 41

依赖项

~685KB
~10K SLoC