|||
据我所知,可以生成二维码的软件很多,Office带了一个二维码控件,不过只能处理英文与数字,不能支持中文,比较鸡肋.LabelMaxtrix可以,但对数据库字段的支持很有限,使用也不方便.Bartender对二维码的支持相当不错,前面博文也介绍过了.
这两天试装软件,发现ZebraDesigner Pro 2.5也可以生成二维码,但是要求安装打印机驱动,并且很奇怪的对二维码的内容做了限定,比如我想在QR code中生成VCARD格式的内容它就不允许,faint! 然后又发现autocad 2018中也多了一个QRCode的生成工具,这个还不错,输入多行文本(中文的VCARD)它就能正确的显示出来.不过我对Autocad的VBA不熟悉,不知道它对数据库的支持能力如何.于是再回过来看想看看Bartender的表现.前面我对它做过一点研究,知道一些功能的用法,因此还算是心里有点底的.
不过结果让我大跌眼镜,这次我直接输入的多行文本(中文的VCARD)来生成QRCode的二维码,生成很顺利,但是用微信来扫描结果就是不能解析为正确的联系方式,完全无效.好象格式错了一样.
我知道微信会解析VCARD的结果,但是淘宝的二维码扫描不做VCARD的解析,只出来内容.我用TB的APP扫了一下,文本出来了,完全正确呀,与输入的文本一模一样,换行、中文、标点符号都完全正确,那是什么地方出了问题?
后来我想,即然可见的部分是正确的,那是不是不可见的部分出了问题,导致不符合微信的要求? 这个VCARD里面唯一不可见的部分就是换行符,那就从这个入手来研究。
经过多次尝试,利用条形码控件--数据源--选中数据后,在 "转换" 标签中的一个功能"搜索与替换"中,新建一个操作,将文本中的换行符(要从下图搜索框右边的向右三角形点击出现的菜单中选择"回车"<CR>),替换成换行符<LF>.这时生成的二维码就完全正常,可以被微信正确识别了.
主要操作如下图,就是把数据源中的回车符<CR>替换成换行符<LF>,生成的二维码就正确了.这个回车与换行要从右边的特殊菜单中选,自己输入的没有用(不知道是不是没有找到正确的符号?)
其实我也不理解回车符与换行符有什么区别? 只是从这个例子可以看出,微信要求的换行是<LF>,但是Bartender默认是把换行处理成换行符<CR>的,我觉得这种处理比较合理,但微信的解析程序偏偏不认.
最后补充下,该二维码控件的基本设定是这样的.
Archiver|手机版|科学网 ( 京ICP备07017567号-12 )
GMT+8, 2024-11-24 22:40
Powered by ScienceNet.cn
Copyright © 2007- 中国科学报社