【问题标题】:.NET MessagingToolkit QRCode Encode Issue.NET MessagingToolkit QRCode 编码问题
【发布时间】:2012-10-02 08:33:18
【问题描述】:

一段时间以来,我一直在我的网站上使用 .NET MessagingToolkit.QRCode 库来生成顶部带有自定义图像的 QR 码,直到现在我对这个库完全没有任何问题。

最近,由于系统增长,我需要编码的数据变得越来越大,并且尝试在 QR 码中对这些数据进行编码已经导致 QRCodeEncoder 类的 Encode 方法中出现内部“索引超出范围”异常。

通过测试,我注意到此方法似乎接受的最大字符数为 86,任何大于此的字符都会引发异常。更改传入的字符串的编码类型没有帮助。

我确实注意到我使用的库版本已经过时了,但是更新到最新版本也没有解决问题。

有没有其他人在库中遇到过这个问题并找到了解决方案?或者,我可以使用另一个没有此类问题的库吗?

异常详情如下:

2012-10-01 17:39:52,098 Error: System.IndexOutOfRangeException: Index was outside the bounds of the array. at MessagingToolkit.QRCode.Codec.QRCodeEncoder.divideDataBy8Bits(Int32[] data, SByte[] bits, Int32 maxDataCodewords) at MessagingToolkit.QRCode.Codec.QRCodeEncoder.calQrcode(Byte[] qrcodeData) at MessagingToolkit.QRCode.Codec.QRCodeEncoder.Encode(String content, Encoding encoding) at MessagingToolkit.QRCode.Codec.QRCodeEncoder.Encode(String content)

【问题讨论】:

    标签: c# .net asp.net-mvc qr-code


    【解决方案1】:

    在该库的官方页面上,有一个针对您的问题的解决方案的简短描述:http://platform.twit88.com/news/60。我不知道这是否能解决你的问题。我会找到库的源代码并通过它进行调试以查看错误原因。

    hm...在任何地方都找不到源代码。因此,请与作者联系并询问他们。

    如果这不起作用,我会将库更改为其他内容。我已经成功地将 QrCode.Net 与 MVC 一起使用,并且有一些示例代码如何将其集成到 MVC,如果您愿意的话。

    【讨论】:

    • 不知何故,设置版本号似乎解决了我的问题,我不能再达到字符限制...多么奇怪的错误,但非常感谢!
    【解决方案2】:

    我知道这篇文章有点老了,但我遇到了同样的问题,发现我的字符串 ( ” ) 中有一个 QR 码无法识别的非法字符。将其替换为常规引号 ( " ) 并且效果很好。

    【讨论】:

    • 对我来说同样的原因。谢谢!
    【解决方案3】:

    我遇到了同样的问题

    QRCodeEncoder qrCE = new QRCodeEncoder();
    qrCE.QRCodeEncodeMode = QRCodeEncoder.ENCODE_MODE.BYTE;
    qrCE.QRCodeErrorCorrect = QRCodeEncoder.ERROR_CORRECTION.L;
    qrCE.QRCodeVersion = 1;
    
    picQRCode.Image = qrCE.Encode(memBarcodeDataForPrint.Text, System.Text.Encoding.UTF8);
    

    我改变了以下行

    qrCE.QRCodeVersion = 1;

    喜欢

    qrCE.QRCodeVersion = 0;

    解决了。

    【讨论】:

      【解决方案4】:

      我遇到了同样的问题。但是我发现每次调用Encode 方法时创建一个新的编码器实例解决了这个问题。

      【讨论】:

        【解决方案5】:

        同样的问题,但是当将版本更改为 0 时它可以工作。

        【讨论】:

        • 如果您确实打算将“版本为 0”作为答案,您可以稍微扩展一下这个答案。
        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-07-13
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-04-12
        • 2012-09-30
        相关资源
        最近更新 更多