Ratgeber › ZPL druckt Sonderzeichen falsch

ZPL druckt Sonderzeichen falsch

Veröffentlicht:

Gesundheitsbericht

Aus Ö wird Ö, aus ü wird ü, ein ß zerfällt in zwei Müllzeichen. Die Daten sind im System richtig, in der Datei richtig — und auf dem Etikett falsch. Das ist keine Beschädigung; zwei Seiten dekodieren dieselben Bytes mit verschiedenen Tabellen.

Was mit den Bytes tatsächlich passiert

Moderne Systeme schreiben Text als UTF-8; ein Ö sind dort zwei Bytes. Ein Zebra-Drucker ohne Anweisung dekodiert ^FD-Daten mit seiner alten Standard-Codepage — jedes Byte ein Zeichen — und druckt die zwei Bytes als zwei falsche Zeichen. Die Signatur ist eindeutig: Jeder Umlaut wird zu einem Zweierpärchen, das nackte ASCII drumherum bleibt perfekt.

Die Lösung: UTF-8 mit ^CI28 deklarieren

Setzen Sie ^CI28 einmal an den Anfang des Formats, vor das erste ^FD. Es weist den Drucker an, Felddaten als UTF-8 zu dekodieren — dieselbe Annahme, die Ihr System längst trifft. Andere numerische ^CI-Werte wählen Ein-Byte-Tabellen und ändern nur einzelne Positionen; für echten mehrsprachigen Text ist 28 der Wert, der zu dem passt, was Sie senden.

^XA
^CI28
^FO50,50^A0N,40,40^FDGrößenprüfung — Müllerstraße^FS
^XZ

Warum die Vorschau stimmt und der Drucker nicht

Ein ehrliches Detail zum Testen am Bildschirm: Eine Browser-Vorschau (unsere eingeschlossen) nimmt durchgehend UTF-8 an — eine Datei ohne ^CI28 kann in der Vorschau perfekt aussehen und auf einem Drucker mit alter Standard-Codepage trotzdem Zeichensalat drucken. Die Strukturprüfung warnt deshalb bei numerischem ^CI ungleich 28; das Fehlen von ^CI28 prüft man vor dem Senden mehrsprachigen Texts mit bloßem Auge.

Zweite Ebene: die Schrift braucht die Glyphe

Das Encoding liefert den richtigen Zeichencode; die Schrift muss dann die Form des Zeichens enthalten. Eingebaute Druckerschriften decken lateinische Alphabete gut ab, aber nicht alles. Druckt ein korrekt kodiertes Zeichen als Lücke oder Kästchen, laden Sie eine TTF mit der Glyphe (~DU) und rufen sie mit ^A@ auf — das Etikett trägt dann seine eigene Schrift, statt auf den Drucker zu hoffen.

Steuerzeichen: ^FH

Für Bytes, die sich nicht tippen lassen — oder wenn eine Integration rohe High-Bit-Bytes unterwegs verstümmelt — schaltet ^FH das Feld auf Hex-Escapes: ^FH^FD_C3_96^FS druckt Ö per Wert. Das ist der robuste Weg für generierte Dateien, wenn ein Zwischensystem UTF-8-Bytes nicht verlässlich bewahrt.

Häufig gestellte Fragen

Warum drucken Umlaute als zwei Müllzeichen?

Ihr System sendet UTF-8; ein Umlaut sind dort zwei Bytes. Ein Drucker ohne Anweisung dekodiert sie mit einer Ein-Byte-Codepage und druckt zwei falsche Zeichen. Setzen Sie ^CI28 an den Formatanfang, vor das erste ^FD.

Warum stimmt die Vorschau, aber der Drucker nicht?

Eine Browser-Vorschau nimmt durchgehend UTF-8 an; eine Datei ohne ^CI28 kann am Bildschirm perfekt aussehen und auf Hardware mit alter Standard-Codepage trotzdem Zeichensalat drucken. Vor dem Senden mehrsprachigen Texts auf ^CI28 prüfen.

^CI28 ist gesetzt, ein Zeichen druckt trotzdem als Kästchen?

Das Encoding liefert den Zeichencode; die Schrift muss die Glyphe enthalten. Eine TTF mit der Glyphe per ~DU laden und mit ^A@ aufrufen — das Etikett trägt seine eigene Schrift, statt sich auf die eingebauten zu verlassen.

Verwandte Ratgeber

Was ist ZPL?

ZPL ist die Sprache der Zebra-Thermodrucker. Wie die Befehle zu lesen sind, wie ein Etikett aufgebaut wird und welche Fehler am häufigsten vorkommen.

Welche Barcode-Symbologie soll ich wählen?

EAN-13, Code 128 oder QR? Praktische Regeln für die Wahl des Barcodes nach Daten, Platz und Lesegerät.

ZPL-Datei ohne Drucker in der Vorschau ansehen

Eine ZPL-Datei ist nur Text — das Etikett existiert erst, wenn etwas es zeichnet. Drei praktische Wege, ein ZPL-Etikett vor dem Drucker zu sehen.

Eigenen ZPL-Code testen →