Как мне кодировать символы с помощью UTF-8 в QR-код с помощью проекта Zxing? - PullRequest
8 голосов
/ 23 марта 2012

Zxing Project - это известная многоформатная библиотека обработки изображений 1D / 2D штрих-кодов с открытым исходным кодом, реализованная на Java, с портами на другие языки.Но я полагаю, что у кого-то есть такая же проблема, как и у меня: я не могу кодировать символы UTF-8 в Qrcode.

Как мне кодировать символы с использованием UTF-8 в QR-коде с помощью проекта Zxing?

Ответы [ 3 ]

13 голосов
/ 23 марта 2012

Правильный способ сделать это - использовать подсказки:

  Hashtable hints = new Hashtable();
  hints.put(EncodeHintType.CHARACTER_SET, "UTF-8");

Затем назовите эту версию encode в QRCodeWriter классе:

  encode(String contents, BarcodeFormat format, int width, int height,Hashtable hints)
3 голосов
/ 04 марта 2015

Ответ мистера Смита совершенно верный.Но почему-то вам нужно использовать строчные буквы utf-8 вместо прописных UTF-8 при кодировании с ZXing.Или некоторые сканеры, такие как Alipay, не могут его прочитать.

Hashtable hints = new Hashtable();
hints.put(EncodeHintType.CHARACTER_SET, "utf-8");
0 голосов
/ 22 марта 2019

Я обнаружил, что есть API, который проще:

.withCharset("utf-8")

Пример:

Bitmap bitmap = QRCode.from([string])
                   .withSize([width], [height])
                   .withCharset("utf-8")
                   .bitmap();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...