Sign In
Products
ZPL ViewerBarcode GeneratorImage → ZPLZPL cheat sheetLabel DesignerTemplate Gallery
Developers
API QuickstartAPI ReferenceMCP ServerBulk GenerationWebhooksSDKs & ExamplesLimitsDirectPrint agent NewGitHub ActionVS Code extensionOn-Premise
Solutions
Logistics & ShippingE-CommerceERP & WMSManufacturingRetailHealthcare & LaboratoryAll solutions
Tools
ZPL Diagnostics HubZPL DebuggerSize & DPI AnalyzerDPI ConverterBarcode fit calculatorShipping Label AnalyzerFont InspectorOrientation DebuggerCalibration AssistantPrinter Compatibility CheckerBarcode Readability CheckerPrinter Language DetectorThermal Printer Test PackZPL ToolsEPL ToolsTSPL ToolsCPCL ToolsPrinter Language ConverterAll ToolsGuidesPricing
Language
EnglishTürkçeDeutsch
Home›ZPL Lint Rules›ZPL4007

ZPL4007 — Non-ASCII character in Code 128 data

The field data of a ^BC (Code 128) barcode contains a character outside ASCII 0 to 127, such as à or é. Zebra's Code 128 character table (subsets A, B and C) covers ASCII only, so the character is not part of the symbology: depending on firmware the printer drops it, replaces it or encodes the raw UTF-8 bytes, and the scanned value no longer matches the text. ^CI28 only changes how text is read, not what Code 128 can encode, and an ^FH escape such as _C3 produces the same byte. The preview draws a space in its place.

SeverityWarning
CategoryBarcodes

Label that triggers it

^XA^CI28^FO50,50^BY2^BCN,100,Y,N,N^FDJOÃO^FS^XZ

Finding: ZPL4007 · line 1:35 — ^BC field data contains a non-ASCII character (Ã): Code 128 encodes only ASCII 0-127, so printers drop, replace or garble it and the scan differs from the text (the preview draws a space). ^CI28 and ^FH escapes do not help. Transliterate to ASCII (e.g. Ã → A) or use QR Code / Data Matrix for accented text

Open the broken label in the editor →

How to fix it

Transliterate the data to ASCII before it reaches the label (JOÃO becomes JOAO). When the accented text itself must be scanned, use a 2D symbology such as QR Code (^BQ) or Data Matrix (^BX) with ^CI28. The corrected example uses the ASCII spelling.

Corrected label

^XA^CI28^FO50,50^BY2^BCN,100,Y,N,N^FDJOAO^FS^XZ

Open the corrected label in the editor

Commands involved

^BC · ^FD

ZPL4001 Barcode without data · ZPL4002 EAN-13 data is not 12–13 digits · ZPL4003 GS1 data without GS1 mode (no FNC1) · ZPL4004 GS1 check digit is wrong · ZPL4005 GS1 AI value has the wrong length · ZPL4006 GS1 check digit set by the printer

In CI

npx labelixa validate "labels/**/*.zpl" lints your files and prints this page's address next to each finding. /docs/cli

Lint your ZPL now