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