QR数据格式不正确

时间:2016-02-10 14:27:10

标签: c# barcode qr-code zxing

我正在使用C#创建后端服务来读取和解释QR码并返回字符串数据。根据我有限的QR知识,代码中嵌入了校验和,不允许从图像中错误地解释数据,因此我继续假设这是我正在使用的库中的编码问题,因为我使用的两个不同的库提供了这两个不同的结果。

正确:

{"uqr":1,"tp":1,"nme”:”Test AB”,”cid":"556036-2138","iref”:”12345678912341”,”ddt":"20140901”,”due”:633.56,”pt":"BG","acc”:”5110-8348”}

错误:

{"uqr":1,"tp":1,"nmeâ?:â?Test ABâ?,â?cid":"556036-2138","irefâ?:â?12345678912341â?,â?ddt":"20140901â?,â?dueâ?:633.56,â?pt":"BG","accâ?:â?5110-8348â?}

错误的一个来自 barcodelib barcodelib.com),而正确的一个来自OpenSource lib ZXing zxingnet.codeplex.com)。< / p> 然而,奇怪的是, barcodelib 通常更好地检测和解释QR码(具有阴影和不同角度),有时也能正确地返回(见下文)格式化的jsons。 / p>

从barcodelib正确格式化的示例:

{"uqr":1,"tp":1,"nme":"Test AB","cid":"556357-0430","iref":"52654","ddt":"20130524","due":2250,"pt":"BG","acc":"881-8383"} 

它有什么不同?如果是编码错误,为什么它不一致?毕竟可以错误地解释QR数据吗?

更新

如下文评论中所述;第一个(正确的)不正确,因为双引号不是常规的ASCII格式双引号。

BarcodeLib代码:

public override string GetQRData()
{
    var retVal = string.Empty;
    var settings = new OptimizeSetting();
    var results = BarcodeReader.read(ImageUrl, BarcodeReader.QRCODE, settings);
    return results.Aggregate(retVal, (current, result) => current + result);
}

ZXing代码:

public override string GetQRData()
{
    var retVal = string.Empty;

    IBarcodeReader reader = new BarcodeReader();
    var barcodeBitmap = new Bitmap(ImageUrl);
    var result = reader.Decode(barcodeBitmap);
    if (result != null)
        retVal += result.Text;

    return retVal;
}

0 个答案:

没有答案
相关问题