AndroidでテキストをQRコードにエンコードし終えましたが、デコード部分もうまく機能します。そして、楽しみのために、私は中国語の単語をQRコードにエンコードします。Androidのzxingはそれをよく認識できます。しかし、私はzxing iPhoneアプリを試しましたが、中国語のデコードに失敗しました(Androidコードが認識されたテキストを返すのに1秒しかかからないのに、久しぶりに結果が出ません)。私はまだIOS用のzxingsdkを見ていませんでしたが、同じ会社のアプリがこれら2つのプラットフォームで異なる動作をする理由に興味があり、アルゴリズムは同じである必要があると思います。ありがとう!
2 に答える
4
あなたは中国人ではありませんが、この問題を発見しました。あなたは優れたテスターでなければなりません。ご存知のように、zxingデコードはiOSやAndroidとは異なります。zixngiOSはzxingAndroidのサブセットであると言えます(私は思います)。zxing iOSで中国語をサポートしたい場合は、c++ポートのStringUtils.cppを改善する必要があります。これらのコードを追加すると役立つ場合があります。
if (length > 2) {
for (int i = 0; i < length - 1; i++) {
int value = bytes[i] & 0xFF;
if (value > 0x7F) {
if (value > 0xB0 && value <= 0xF7) {
int value2 = bytes[i + 1] & 0xFF;
if (value2 > 0xA0 && value2 <= 0xF7)
return GB2312;
}
}
}
}
于 2012-10-26T03:09:48.730 に答える
1
ZXingは会社ではなく、オープンソースプロジェクトです。
さらに重要なことに、この場合、Java(Android)ポートとC ++(iOS)ポートで作業する人々は重複していますが、同じではありません。また、ZXing FAQに記載されているように、ポートは同等ではありません。
ただし、JavaとC ++のQRコードのサポートはかなり注意深く同期されているため、結果に大きな違いはありません。最善の策は、問題の原因となっているコードをZXingメーリングリストに投稿して、人々が調査できるようにすることです。
(FWIW、私はC ++ / iOS ZXingポートに最も頻繁に貢献している人の1人です。)
于 2012-07-12T01:59:14.350 に答える