A mismatch between a receipt printer's character encoding and the text sent by your POS can cause garbled characters. This free browser tool previews bytes for ten single-byte ESC t codepages, using the same tables as our PrintDoctor app. It does not detect or connect to your printer; check its model and firmware manual before choosing a codepage.
PrintDoctor is a paid, one-time-purchase app for compatible ESC/POS printers over LAN/Wi-Fi (TCP). Bluetooth-only and USB-only connections are not supported. This free 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 | 中文測試 简体 |
Use UTF-8 only when the model and firmware documentation confirms support and your POS sends matching bytes. The preview above does not encode arbitrary CJK text. PrintDoctor offers fixed GBK, Big5 and UTF-8 test samples; results still require comparison on the physical printer.
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.