在QR码符号中存储vCard数据的最有效方法

时间:2015-07-15 20:20:18

标签: javascript compression qr-code vcard

使用JavaScript压缩QR码中的vCard数据的有效方法是什么?我尝试了lz-string库,但是当我尝试编码一个我有非法UTF-16字符的QR码时出错。还有更好的方法吗?

1 个答案:

答案 0 :(得分:1)

如果要在开放式应用程序中读取vCard,例如使用通用QR码阅读器,则无法简单地压缩输入数据并期望解码器找出如何解压缩结果数据。

减小结果符号大小的一种方法是确保编码器通过将自己限制为大写来最佳地使用QR码的数字和字母数字编码模式(而不是切换到低效的字节编码模式)和数字字符以及基本格式符号(如果这是实用的)。但是,您需要使用良好的QR代码生成库来确定模式之间的最佳切换,以最大限度地减少内部数据长度,以便从此技术中受益。 [*]

如果您还没有,您应该考虑将错误修正级别降低到" L"。

最后,考虑使用更紧凑的meCard格式而不是vCard。

如果预期用途在封闭的应用程序中(虽然我无法看到vCard的情况),您可以使用GZIP压缩(RFC 1952)并通过在数据前加上ECI 001800指示符来指示。在扫描时,您可以通过将具有ECI支持的阅读器放入扩展通道模式来可靠地确定GZIP压缩的使用,以检测ECI 001800指示器的存在并在您的应用程序中进行相应的解压缩。

[*] Barcode Writer in Pure JavaScript是一个JavaScript库,可以对QR码的任何给定输入进行最佳编码,以提供尽可能小的符号。