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