0

AndroidでテキストをQRコードにエンコードし終えましたが、デコード部分もうまく機能します。そして、楽しみのために、私は中国語の単語をQRコードにエンコードします。Androidのzxingはそれをよく認識できます。しかし、私はzxing iPhoneアプリを試しましたが、中国語のデコードに失敗しました(Androidコードが認識されたテキストを返すのに1秒しかかからないのに、久しぶりに結果が出ません)。私はまだIOS用のzxingsdkを見ていませんでしたが、同じ会社のアプリがこれら2つのプラットフォームで異なる動作をする理由に興味があり、アルゴリズムは同じである必要があると思います。ありがとう!

4

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 に答える