Thermal receipt printers store text as single-byte codepages, not Unicode. If accented or CJK characters print as boxes, "?", or the wrong glyphs, your POS software and the printer's ESC t codepage setting disagree. Type your text below to preview exactly which bytes get sent — and which characters survive — under each codepage, the same tables used by our PrintDoctor app.
This page previews encoding in the browser only. To see how your physical printer actually renders each codepage — fonts vary by printer firmware — PrintDoctor's Codepage Matrix prints every table on paper so you can compare by eye.
Chinese/Japanese/Korean text doesn't fit in a single byte, so printers switch to a double-byte or variable-width mode instead of the ESC t table above. The three you'll meet in the wild:
| Mode | Typical use | Sample |
|---|---|---|
| GB18030 / GBK | Simplified Chinese firmware (mainland China) | 简体中文测试 |
| Big5 | Traditional Chinese firmware (HK/Taiwan) | 繁體中文測試 |
| UTF-8 (FS ( C) | Modern multi-language firmware | 中文測試 简体 |
If your printer supports FS ( C encode-method 2, set it to UTF-8 and skip the guessing game entirely — every codepage problem on this page is really "my printer's firmware predates UTF-8 support."
My receipts print "é" instead of "é" — what's wrong?
Classic double-encoding: your POS software encoded the text as UTF-8, but the printer is decoding those bytes as a single-byte codepage (often WPC1252 or PC850), so each UTF-8 multi-byte sequence renders as two-plus garbled Latin-1 characters. Fix: send text pre-encoded in the printer's actual codepage (see the encode preview above), or switch the printer to UTF-8 mode if the firmware supports it.
How do I know which codepage my printer is actually using?
Print the self-test / hex-dump page most ESC/POS printers support at power-on (usually hold the feed button) — it lists the firmware's supported codepages and current default. Or print a known test string through each candidate codepage (PrintDoctor's Codepage Matrix does this in one tap) and compare by eye against the tables below.
What does the ESC t n command actually do?
1B 74 n (hex) tells the printer's firmware which of its
built-in single-byte codepages to use for interpreting every following text byte ≥ 0x80. The n values are firmware-specific — Epson's numbering (used by most ESC/POS clones) is
what the "ESC t n" column below lists.
Does this replace testing on the real printer?
No — browser fonts and printer firmware fonts aren't guaranteed identical, especially for box-drawing and symbol glyphs. This page is for narrowing down candidates and understanding the byte math; the PrintDoctor app's Codepage Matrix prints the real thing.