我必须使用连接的对象属性生成 QRCode。这些字符串可能很长,这就是为什么我想知道使用哪种压缩算法知道我的字符串的长度在 25 到 100+ 个字符之间
提前致谢,
杰雷克
我必须使用连接的对象属性生成 QRCode。这些字符串可能很长,这就是为什么我想知道使用哪种压缩算法知道我的字符串的长度在 25 到 100+ 个字符之间
提前致谢,
杰雷克
我假设由于您要在存储这些 QR 码将无法被任何客户端读取的字符串之前使用压缩,因此它必须是您编写的应用程序(b/c 您正在存储具有未知编码的字符,客户端将无法解码)。
不是在 QR 码中压缩和存储长字符串,而是让您的应用程序创建一个URI(如GUID或 URL),当您的应用程序解码该URI时,它会查找您想要存储的所有值(未压缩)在二维码。然后,您的应用程序可以以任何它想要的方式查找格式。
例如,假设您的持久存储是一个 xml 文件,但它可以是任何东西:
<URI = "http://mydomain.com/790C9704-8C61-435F-991D-CDBB5767AA3D">
<MyElement>14523</MyElement>
<MyElement>67548</MyElement>
...
<MyElement>46167</MyElement>
</URI>
在二维码上编码:“http://mydomain.com/790C9704-8C61-435F-991D-CDBB5767AA3D”,然后可以查找值。
用于编码 QR 码的算法取决于您编码的数据类型。请参阅http://www.swetake.com/qr/qr1_en.html。
例如,如果您知道每个 id 始终具有相同数量的数字,因此可以将它们串在一起而无需标点符号,您可以将它们编码为纯数字,并且每三个字符使用 10 位。
如果您需要某种分隔符,如果您在“0-9A-Z $%*+-./:”中使用某些东西,您将保持字母数字并获得 2 个 11 位字符。
如果你给它任意数据(注意这包括任何小写:上面的列表不包括小写字母)你将使用每个字符 8 位。
因此,仅数字最终会小 60%。