Печать UTF-8 QR-кодов показывает специальные символы для умлаутов - PullRequest
0 голосов
/ 27 августа 2018

Я пытаюсь использовать List & Label в своем приложении C # для вывода QR-кода в кодировке UTF-8. Это именно то, что нужно моему клиенту.

К сожалению, клиентский сканер отображает только специальные символы. Я не могу найти опцию для установки кодировки для вывода. LL_OPTION_SAVE_PROJECT_IN_UTF8, кажется, не имеет никакого эффекта. Я также попытался установить LL_OPTION_CODEPAGE безрезультатно.

Как можно вывести QR-код в формате UTF-8?

1 Ответ

0 голосов
/ 27 августа 2018

Сам код QR не имеет фиксированной кодировки.Вы можете попытаться установить ECI, используя

LL.Core.LlXSetParameter(LlExtensionType.Barcode, "QRCode", "ECI", "0000026");

В зависимости от типа сканера, это может помочь или нет.Чтобы UTF-8 кодировал содержимое, вы должны передавать его побайтово - это позволяет обойти любые проблемы между передачей и рендерингом.Функция расширения конструктора, которая обрабатывает это задание, будет подключена следующим образом:

Designer Function

Код оценки будет выглядеть следующим образом:

private void designerFunction1_EvaluateFunction(object sender, EvaluateFunctionEventArgs e)
{
    string input = e.Parameter1.ToString();

    var utf8 = Encoding.UTF8;
    byte[] utfBytes = utf8.GetBytes(input);
    StringBuilder barcodeContent = new StringBuilder();
    foreach (byte b in utfBytes)
    {
        barcodeContent.AppendFormat("~d{0:000}", b);
    }
    e.ResultValue = barcodeContent.ToString();
    e.ResultType = LlParamType.String;
}

Затем используйте EncodeAsUTF8 для содержимого вашего штрих-кода, и все будет в порядке.

...