gpt4 book ai didi

javascript - 将字符串编码为 QR 码生成器的小尺寸

转载 作者:塔克拉玛干 更新时间:2023-11-03 05:27:15 25 4
gpt4 key购买 nike

我正在使用字符串生成 QR 码,这些字符串的长度很容易超过 QRCode 可以处理的长度。我正在寻找有关将这些字符串编码得尽可能小的算法的建议,或者字符串不能进一步缩小的证明。

因为我对一系列项目进行编码,所以我可以使用 ID 来表示它们并使用管道描述它们,如下面的查找表所示:

    function encodeLookUp(character){
switch(character){
case '0': return '0000';
case '1': return '0001';
case '2': return '0010';
case '3': return '0011';
case '4': return '0100';
case '5': return '0101';
case '6': return '0110';
case '7': return '0111';
case '8': return '1000';
case '9': return '1001';
case '|': return '1010';
case ':': return '1011';
}
return false;
}

使用此表我已经在进行 base 16 编码,因此原始字符串中的每 32 个 ascii 字符成为新字符串中的半个字符(有效地减半长度)。

Starting String:  01251548|4654654:4465464 // ID1 | ID2 : ID3   demonstrates both pipes.
Bit String: 000000010010010100010101010010001010010001100101010001100101010010110100010001100101010001100100
Result String: %H¤eFT´FTd // Half the length of the starting string.

然后这个新的 ascii 码,根据 QRCode 规范进行翻译。

编辑:当前可编码的最大字符数:384

澄清:ID 数字长度和 ID 或管道的数量都是可变的,并且趋向于一个。我希望能够减少此算法,使其成为“结果字符串”时平均包含最少数量的字符。

注意:结果字符串只是我用数据编码以符合标准 QRCode 规范和阅读器的二进制字符串的 ascii 表示。

最佳答案

如果你有相对非随机的数据,一个Huffman encoding可能是一个很好的解决方案。

关于javascript - 将字符串编码为 QR 码生成器的小尺寸,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5748684/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com