カテゴリー
コンピューター

Monaca の BarcodeScaner プラグインには読めない全角文字がある問題への対処

問題

  • はしごだか、たつさき、に限らず漢字の一部で、また、ひらがなでも組み合わせによって QR コードが読めない。
  • Monaca の iOS アプリで確認した。
    • Cordova バージョン: 4.1.2
      iOS プラットフォーム: 3.7.0
      Android プラットフォーム: 3.6.4
    • BarcodeScaner: v1.0.1

QRコード作成設定を変えたら解決できないか?→ダメだった

QR コードの作成は、「ラベル屋さん」で設定で行いました。

デフォルト設定

  • 誤り訂正: 15%
  • バージョン: 1

次まで高精細なQRコードにすると、スキャンは反応いたしました。しかし、化けたり欠損したりと、正しく読み取れませんでしたの><。

  • 誤り訂正: 30%
  • バージョン: 12

他の iOS アプリで試してみると、読めた。。。

どんな QR スキャナーでも読み込めない文字列なのかもしれないと考えました。

そこで適当なアプリを試しましたところ、簡単に読み込めましたわ。

Monaca で使用している QR コードプラグインのバージョンアップなどできるのではないか?→できなかった。

が、BarcodeScaner の本家ページと存じます。ここではバージョン 4.1.0 ですの。

一方で Monaca で使用できるバージョンは 1.0.1 で、変更することはできず固定でした。

文字列を URL エンコードして QR コードを作成してみた → 上手くいった!

で文字列の URL エンコードを試しました。これで解決できましたわ♪

ラベル屋さんの設定はデフォルトの、誤り訂正: 15%、バージョン: 1、でオーケーでしたの!

そして Monaca 側のコードをデコードするように修正いたしました。

なお、今までエンコードしないでも読み込めた QR コードはそのまま継続して使用可能でしたわ!

data.barcode = result.text

data.barcode = decodeURIComponent(result.text)

おわりに

QR コードを扱うときは、エンコードしておいた方が無難、ということですわね><。今回まんまと失敗してしまいました。

以前の失敗の変則パターン、そんな感じがいたします。

以上です。

コメントを残す