私は自分のウェブサイトで .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)