1

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

4

5 に答える 5

2

そのライブラリの公式ページには、問題の解決策の簡単な説明があります: http://platform.twit88.com/news/60。それがあなたの問題を解決するかどうかはわかりません。ライブラリのソース コードを見つけてデバッグし、エラーの理由を確認します。

うーん...ソースコードがどこにも見つかりません。そのため、著者に連絡して質問してください。

それがうまくいかない場合は、ライブラリを別のものに変更します。私はMVC でQrCode.Netを正常に使用しており、必要に応じて MVC に統合する方法のサンプル コードをいくつか用意しています。

于 2012-10-02T09:18:36.250 に答える
2

この投稿が少し古いことは承知していますが、同じ問題に遭遇し、QR コードが認識しない文字列 ( ” ) に不正な文字が含まれていることを発見しました。これを通常の引用符 ( " ) に置き換えると、うまくいきました。

于 2013-03-27T16:25:29.270 に答える
0

私は同じ問題を経験しました。Encodeただし、メソッドを呼び出すたびにエンコーダーの新しいインスタンスを作成すると、問題が解決することがわかりました。

于 2015-06-11T12:10:47.017 に答える
-1

同じ問題ですが、バージョンを 0 に変更すると機能します。

于 2014-09-17T19:20:19.210 に答える