.NET MessagingToolkit QRCode编码问题

时间:2012-10-02 08:33:18

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

我一直在我的网站上使用.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)

5 个答案:

答案 0 :(得分:2)

在该图书馆的官方页面上,您可以找到问题解决方案的简短说明:http://platform.twit88.com/news/60。我不知道这是否能解决你的问题。我会找到库的源代码并通过它调试以查看错误的原因。

hm ...无法在任何地方找到源代码。所以请与作者联系并询问他们。

如果不能解决问题,我会将库更改为其他内容。我已经成功使用了QrCode.Net和MVC,如果你愿意的话,还有一些示例代码如何将它集成到MVC中。

答案 1 :(得分:1)

我知道这篇文章有点陈旧但我遇到了同样的问题,发现我的字符串(“)中有一个非法字符,QR码无法识别。用常规引号替换它(")并且工作正常。

答案 2 :(得分:0)

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

答案 3 :(得分:0)

我遇到了同样的问题

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 :(得分:-1)

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