Zxing能读取0开头的条码吗?

Can Zxing read barcode starting with 0?

我将 ZXing 集成到一个 Xamarin.Forms 项目中,该项目使用户能够扫描条形码并将接收到的数据放入输入字段。我用 13 位条码试过,它总是无法读取第一个数字“0”并接收剩余的 12 位数字。

以其他数字开头的条形码工作正常。我现在通过只接受 13 位数字来对代码进行创可贴,但这不是 "solution"。

using ZXing.Net.Mobile.Forms;

async void ScanButtonClicked(object sender, EventArgs s)
{
    var scanPage = new ZXingScannerPage()
    await Navigation.PushAsync(scanPage);

    scanPage.OnScanResult += (result) =>
    {
        scanPage.IsScanning = false;
        Device.BeginInvokeOnMainThread(async () =>
        {
            if (result != null && result.length == 13) // this is just a band-aid...
            {
                entry.text = result.Text;
            }
        });
    };
}

我该如何解决这个问题?

UPC-A是EAN-13的一个子集,任何以0开头的EAN-13都将被视为UPC-A,即12位无前导0.An EAN前导0为与没有 0 的 UPC 代码相同。它作为 UPC 返回。如果您希望响应仅是 EAN-13 解释,请将其设置为唯一请求的格式,如下所示:

var opts = new MobileBarcodeScanningOptions
    {
      PossibleFormats = new List<BarcodeFormat> { BarcodeFormat.EAN_13 }
    };