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

标签 javascript compression qr-code vcf-vcard

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

最佳答案

如果 vCard 旨在在开放应用程序(例如通用 QR 码阅读器)中读取,则您不能简单地压缩输入数据并期望解码器找出如何解压缩结果数据。

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

如果您还没有考虑将纠错级别降低到“L”。

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

如果预期用途是在封闭的应用程序中(尽管我看不到 vCard 的情况),您可以使用 GZIP 压缩 (RFC 1952) 并通过在数据前添加 ECI 001800 指示符来指示这一点。在扫描时,您可以通过将支持 ECI 的阅读器置于扩展 channel 模式来检测 ECI 001800 指示器的存在并在您的应用程序中相应地解压缩,从而可靠地确定 GZIP 压缩的使用。

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

关于javascript - 在 QR 码符号中存储 vCard 数据的最有效方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31440259/

相关文章:

javascript - 如何在 Rails 中将 javascript/jQuery 设置从一个页面传递到另一个页面?

php - 带有自己图像的 QR 码生成器 EPS

encryption - 解密(不仅是解码)二维码

android - 二维码链接到安卓

javascript - 需要javascript检查夏威夷阿拉斯加等的邮政编码

javascript点击被调用两次或更多

javascript - jQuery 鼠标点击计数器

go - 将 int 数组转换为字节数组,压缩然后反转

PHP+Imagick - PNG压缩

windows-phone-8 - 在 Windows Phone 8 应用程序中下载并解压缩 zip 文件