问题标签 [base91]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
node.js - NodeJS、baseE91 和小端
我将如何使用 NodeJS 将下面的字符串从 baseE91 解码为可读文本?
* 编辑 *
使用 baseE91 表,我设法将上面的字符串转换为十六进制字符串
十六进制字符串
然后我把它喂进缓冲区
这给了我:
我怎样才能把它变成我可以使用的东西?我怀疑它是一个 JSON 对象......
java - mysql数据库中的Base91字符串损坏
我正在使用 Base91 将图像作为字符串存储在 mysql 数据库中。当我检索字符串以将其转换回图像时,该字符串似乎已被数据库损坏。
我确定它在数据库中已损坏,因为我在单个设备上进行了单独的拍照测试,将其转换为 Base91 byte[]
,将 转换byte[]
为字符串(使用 Latin1),将字符串转换回byte[]
,然后转换为图像,它的工作。当我尝试在中间使用服务器时,图像最终会损坏。
我尝试将数据库上特定列的排序规则从 utf8 更改为 ascii 到 latin1,但没有运气。
代码:
编码图片:
/li>存储编码图像:
/li>检索图像:
/li>解码图像:
/li>
python - 与 base91 相互转换
我知道Joachim Henke 定义的base91使用这些字符:
为了将字符串与 base91 相互转换,应该执行哪些步骤?
javascript - 跨移动设备和网络提供图像
我需要构建一个将图像上传到数据库的门户网站。这些图像将显示在 android 应用程序和 Web 门户中。
我在严格处理应用程序时使用的常用方法如下:
- 压缩图片
- 将其编码为base91字符串
- 发送到服务器进行存储
如何在网站的上下文中实现这一点(使用 javascript 或 python)?特别是编码/解码(Base91)部分。
ps:我的网络经验非常基础。
algorithm - Base91,它是怎么计算出来的?
我一直在网上寻找如何计算 baseE91。我找到了诸如此类的资源,它指定了用于特定值的字符,但我没有找到如何获得该值的方法。
我尝试将输入值更改为二进制并获取 6 位和 7 位的块,但这些都不起作用,并且我得到了不正确的输出。我不想要为我做这件事的代码,因为我自己编写它,我只想知道将字符串编码为 baseE91 所需的过程。
email - 为什么“-”(连字符)是电子邮件兼容性的唯一 ASCII 限制?
我正在阅读Base91 的提案,(我添加了粗体格式):
所有基于 SMTP 的电子邮件都可以提供与电子邮件的兼容性。所谓与E-mail兼容,就是将E-mail传送的任意8位数据字节串或任意位流数据转换为有限ASCII码的字符串。后者的主要限制是:
(a) 字符必须是可打印的;
(b) 字符不是控制字符或“-”(连字符)。
这样的ASCII字符总共有94个,它们对应的数字编码都是32到126之间的整数,45除外。用这些 ASCII 字符编写的电子邮件与 Internet 标准 SMTP 兼容,几乎可以在所有电子邮件系统中传输。
注意:45 是连字符的 ASCII 值。
注:我刚刚发现这个提案来源于中国(ZL00112884.1)和美国(US6859151B2)的专利。
但我也阅读了关于 SMTP 的RFC 5321 ,但我找不到任何使连字符成为可打印 ASCII 范围的唯一限制的内容。
注意:可打印的 ASCII 范围是:
!"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~
为什么 Base91 提案/专利声称“-”(连字符)是电子邮件兼容性的唯一限制?
javascript - 将二进制/十六进制转换为 Base91 / Ascii85 / Base64
我需要一个 JS 编码器到 base91 或 Ascii85 来获取二进制数。我确实有一个谷歌表,如下所示:
代码是:
目前对十六进制的编码效果很好——但我需要一种更有效的方法来编码这个二进制标志。
目的:这种编码模式将来可能是产品/备件名称的一部分,其中我最多有 5-6 个字符(就像 80 年代的 :D 一样)。
Ascii85 会很棒,因此'ffffffff' 的表示是' s8W-!' 我会保存 3 个字符。对于测试/编码,我使用了 cryptii。
解决方案应该是没有外部依赖/要求的纯 JS 和/或应该能够在 Google 的环境中运行。您知道我可以为此目的使用的任何库吗?Base91 也可以——只要我们有可打印的字符。完美的解决方案将是可配置的 JS 编码器/解码器 - 可以预先选择用于编码的模式和字符。
更新:
发现 Ascii85 或 Base91 或不适合宣布每部手机的代码 - 因此您不想在键盘上轻松找到所有字符。确实,base64 效率较低,但通过调整要求,我能够找到最大的解决方案。实验几天后4-5个字符。我将尝试回答我自己的问题 - 见下文。更新要求:
- 16 位有效载荷
- 4 位(编号 1..15)用于家庭/配方/类型选择
- CRC4 4 位
- base64 编码,没有外部依赖和可调整的字母表
flutter - 如何在颤振/飞镖中使用 base 91 编码和解码二进制数组?
我需要使用 base 91 将字节数组编码为字符串,反之亦然。
有什么线索吗?