如何处理从条形码扫描器返回的二进制数据?

6
我有一台二维码扫描仪(Honeywell Xenon 1900)。
扫描一维条形码很容易,因为扫描仪模拟键盘事件并发送纯文本。
但是当我扫描PDF417格式的二维码时,扫描仪会发送二进制数据。我该如何捕获和解码这些数据?其中一些符号是不可打印的,因此无法将其扫描到网页表单中。

3
也许可以发一篇样例回复? - BryanH
1
你在帖子中已经有了答案,只需仔细查看链接(ISO在维基百科中)。 - java_xof
根据维基百科的文章,条形码可以包含实际的二进制数据,因此这是输出的合理选择,对吗?如果您使用仅包含ASCII数据的自己生成的2D条形码,那么扫描器会返回文本吗? - BryanH
扫描仪如何在发送二进制数据时模拟键盘?这对我来说毫无意义。答案就在于“扫描仪发送...”,它在哪里以及如何发送? - skrat
2个回答

4

我对这个问题的解决方案是使用COM端口。

我配置了扫描仪,使其不发送键盘事件,而是发送到虚拟COM端口中。然后我有一个Java小程序,监听这个端口(使用RXTX)。当COM端口不为空时,我就可以获取数据并解析它。


0
你同时标记了Java和JavaScript,但是你并没有给我们任何关于你的应用程序的详细信息。不过,在JavaScript中处理二进制数据的传输可以使用base64协议。使用两个方法btoa()atob()
function toBase64 () {
            return window.btoa(data);
        }
function fromBase64 (strBase64){
            data = window.atob(strBase64);
        }

我认为对于你来说,(仅仅是猜测,因为你没有详细解释你在做什么),你需要在传输数据到 JavaScript/HTML/Web 应用程序之前,使用 Java 对数据进行 base64 编码。一旦你将 base64 编码的数据发送到 Web 应用程序,你就可以很容易地处理它。


这是一个优雅且易于实现的解决方案。但我找不到配置选项来使用BASE64格式进行扫描。 - griZZZly8

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接