字符串的压缩算法

时间:2011-05-23 08:28:49

标签: algorithm string compression qr-code

我必须使用连锁对象属性生成QRCodes。这些字符串可能很长,这就是为什么我想知道使用哪种压缩算法,因为我知道我的字符串长度在25到100个字符之间

提前感谢,

杰瑞克

2 个答案:

答案 0 :(得分:0)

我假设因为你要在存储字符串之前使用压缩,这些QR代码将无法被任何客户端读取,所以它必须是你编写的应用程序(b / c,你要存储字符)一个未知的编码,客户端将无法解码)。

不要在QR代码中压缩和存储长字符串,而是让应用程序创建URI(如GUID或URL),并在应用程序解码URI时查找要存储在QR码中的所有值(未压缩)。然后你的应用程序可以以任何方式查找格式。

例如,假设您的持久存储是一个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”,然后可以查找值。

答案 1 :(得分:0)

用于编码QR码的算法取决于您编码的数据类型。请参阅http://www.swetake.com/qr/qr1_en.html

例如,如果您知道每个ID总是具有相同的位数,因此可以将它们串在一起而不用标点符号,您可以将它们编码为纯数字,并且每三个字符使用10位。

如果您需要某种分隔符,如果您使用“0-9A-Z $%* + - ./:”中的内容,您将保留字母数字并获得11位中的2个字符。

如果您给它任意数据(请注意,这包括任何小写:上面的列表不包括小写字母),您将使用每个字符8位。

因此数字只会减少60%。