UTF-8 codierte Zeichen in QR-Codes darstellen

Ab List & Label 28 können Sie die Designerfunktion UTF8Encode$ nutzen, um Umlaute korrekt in QR-Codes (und Datamatrix-Codes) darzustellen.

Dies kann z.B. so aussehen: Barcode(UTF8Encode$("ÄÖÜ"), "QRCode").

Für ältere Versionen gilt:

Der QR-Code selbst hat keine feste Kodierung. Um sicherzustellen, dass die Inhalte UTF-8 kodiert werden, sollten Sie sie Byte für Byte übergeben - so werden alle Probleme vermieden, die zwischen der Übergabe des Inhalts, der Darstellung als QR-Code und dem Scannen entstehen. Eine Designer-Erweiterungsfunktion, die diesen Job übernimmt, könnte so aussehen:

image

Der Evaluationscode der Funktion wäre dabei:

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;
}

Verwenden Sie dann EncodeAsUTF8(<aktueller Inhalt>) für den Inhalt Ihres Barcodes. Das gleiche Verfahren würde auch für den DataMatrix-Barcode funktionieren.

Wenn Ihnen in Ihrer Programmiersprache keine Designerfunktionen zur Verfügung stehen können Sie natürlich auch eine Variable/Feld mit dem so umgewandelten Inhalt übergeben ("~d…~d…", wobei “…” jeweils die UTF8-Bytes darstellt).