打印UTF-8 QR码会为Umlauts显示特殊字符

时间:2018-08-27 08:59:53

标签: qr-code listlabel

我正在尝试在C#应用程序中使用“列表和标签”以UTF-8编码输出QR码。这正是我的客户所需要的。

不幸的是,客户的扫描仪仅显示特殊字符。我找不到设置输出字符集的选项。 LL_OPTION_SAVE_PROJECT_IN_UTF8似乎无效。我还尝试将LL_OPTION_CODEPAGE设置为无效。

如何将QR码输出为UTF-8?

1 个答案:

答案 0 :(得分:1)

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用于条形码的内容,您应该会满意。