^CI selects the character encoding / code page used to interpret the bytes in ^FD fields. By default ZPL uses code page 850 (Latin-1), which covers Western European characters. For other languages or character sets, you need to switch to the appropriate code page.
This is critical when printing non-ASCII text. If your label data includes accented characters (é, ü, ñ), Cyrillic, or Asian characters (via UTF-8 or other encodings), you must set ^CI to match the encoding of your data stream, or the printed characters will be garbled.
Common values: 0 = US ASCII, 13 = Latin-1 / ISO-8859-1 (common for Western European), 28 = UTF-8 (for multi-language or Unicode content), 34 = Simplified Chinese GBK, 36 = Japanese Shift-JIS.
Not all code pages are available on all Zebra firmware versions. For modern labels, CI28 (UTF-8) is the most flexible choice if your printer firmware supports it (most Zebra printers from 2015 onward do).
^CI applies to the current and all subsequent formats until changed. Place it near the top of the format after ^XA.
Syntax
^CIa
Parameters
| Parameter | Type | Default | Description |
|---|---|---|---|
| a | integer | 0 | Character set identifier. Common values: 0 = US ASCII, 13 = Latin-1, 28 = UTF-8, 34 = GBK, 36 = Shift-JIS. |
Examples
Latin-1 for Western European accented characters
Try in Viewer^XA ^CI13 ^FO50,50^A0N,36,36^FDCafé & Résumé^FS ^XZ
UTF-8 for full Unicode support
Try in Viewer^XA ^CI28 ^FO50,50^A0N,36,36^FDHello — Bonjour — Hola^FS ^XZ
Common Mistakes
- !Leaving ^CI at the default (ASCII) when printing accented or non-Latin characters — results in garbled or missing characters.
- !Using ^CI28 (UTF-8) without confirming your firmware version supports it — older printers may not.
- !Forgetting that ^CI applies globally and persists — a CI change in one format affects subsequent formats.