TA的每日心情 | 奋斗 19 分钟前 |
---|
签到天数: 3413 天 连续签到: 15 天 [LV.Master]2000FPS
|
发表于 2014-5-14 18:05:14
|
显示全部楼层
|阅读模式
来自:广东省东莞市 电信
注册登陆后可查看附件和大图,以及购买相关内容
您需要 登录 才可以下载或查看,没有账号?注册会员
x
本帖最后由 石鑫华视觉 于 2016-6-15 14:51 编辑
石鑫华视觉网
上图所示,为在联图网站上在线生成的QR二维码,内容为“石鑫华视觉”。
这图使用NI的视觉软件,如VBAI、视觉助手或VDM开发,读取的数据,都是乱码来着:
视觉助手读取二维码
视觉助手识别的二维码是代码形式,其值为:
<0xE7><0x9F><0xB3><0xE9><0x91><0xAB><0xE5><0x8D><0x8E><0xE8><0xA7><0x86><0xE8><0xA7><0x89><0xE7><0xBD><0x91>
LabVIEW Vision读取二维码效果
LabVIEW VISION读取二维码的原始数据是乱码形式。其值如果显示为16进制则为:
E79F B3E9 91AB E58D 8EE8 A786 E8A7 89E7 BD91
再来看下面这张图:
石鑫华视觉网
这个图是使用Bartender生成的QR二维码。使用的是二进制模式生成、中文简单纠正模式得到的QR码。这时使用NI软件可以直接读取中文字符:
视觉助手读取二维码
视觉助手读取二维码效果,其值为:
<0xCA><0xAF><0xF6><0xCE><0xBB><0xAA><0xCA><0xD3><0xBE><0xF5><0xCD><0xF8>
从这里可以看到,两幅图的结果的16进制代码是不一样的。
LabVIEW Vision读取二维码效果
为什么同样内容“石鑫华视觉”,使用不同的生成二维码方式得到的结果不一样呢?
这是由于字符的编码方式引起的。现在国内比较主流的两种编码方式是UTF8和GBK2132。这两种方式,在网页中是很常见的。第一张图使用联图在线生成的二维码,其编码方式使用的是UTF8格式的,这种编码方式 ,一个汉字是由三个字节来表示的,所以其“石鑫华视觉”有18个16进制字符。而后面的Bartender生成的二维码,其编码方式是GBK方式(二进制),这种编码方式一个汉字是由两个字节来表示的,则“石鑫华视觉”只有12个16进制字符。
这时,要想将上面的乱码表示正确,则只需要将其UTF8字符集转换成GBK字符集就可以了。
本贴附件有一个UTF8转GBK的VI,调用了.NET中的一些类。可以完成这个工作。
使用LabVIEW2013版打开:
视觉助手脚本.vascr
(1.39 KB, 下载次数: 86)
QR.vi
(78.6 KB, 下载次数: 84)
UTF8 to GBK2132.vi
(13.16 KB, 下载次数: 97, 售价: 5 元)
UTF8 to GBK2132-8.0V.vi
(12.67 KB, 下载次数: 96, 售价: 5 元)
UTF8 to GBK2132-8.6V.vi
(9.61 KB, 下载次数: 40, 售价: 5 元)
UTF8 to GBK2132-2011V.vi
(9.69 KB, 下载次数: 11, 售价: 5 元)
UTF8 to GBK2132-2012V.vi
(9.9 KB, 下载次数: 34, 售价: 5 元)
|
|