^CI
Change International Font/EncodingPreview: partialSelects the printer character set or Unicode encoding used to interpret later field data.
Syntax
^CIa,s1,d1,s2,d2,...Parameters
| Parameter | Description and accepted values | If omitted |
|---|---|---|
| a | Character-set or encoding number. Use 28 for UTF-8 in a modern label.0 to 30 character-set or encoding id | 0 |
| s1,d1,... | Optional pairs that remap source character codes to destination codes for the selected legacy set.Source and destination remapping pairs | None |
How it works
^CI selects how the printer reads the bytes in text fields. The ordinary Latin code pages map the same byte differently, while ^CI28 selects UTF-8 for labels that carry accents, names and other Unicode text.
For legacy code pages, the optional source-and-destination pairs remap individual character values. Keep that mapping close to the integration that emits the bytes: a printer setting cannot repair data that was already encoded with the wrong character set.
Hexadecimal field data needs both ^CI28 and ^FH when UTF-8 bytes are written as _XX sequences. That makes a label portable through systems that cannot safely send literal non-ASCII characters.
Example
^XA
^CI28
^FO40,60^A0N,40,40^FH^FDFran_C3_A7ais^FS
^XZRendering…
How the preview on this site handles it
^CI28 plus ^FH UTF-8 bytes are decoded before rendering. Other printer code pages and their custom remapping pairs are recognized but not reproduced, so the compatibility layer warns before relying on them.
Common mistakes
- Sending literal accented text without ^CI28. A printer reading its single-byte default produces the wrong glyphs.
- Selecting ^CI28 but writing a Latin-1 byte sequence. UTF-8 is a byte encoding, not a switch that repairs existing data.
- Applying ^FH without escaping every non-ASCII byte. Each UTF-8 byte must be expressed separately as an _XX sequence.