Free tool · ESC/POS (ESC t)

ESC/POS codepage identifier

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.

aASCII passthrough (0x00–0x7F) · ámapped high byte (0x80–0xFF) · ?unsupported — prints as literal "?"
Get PrintDoctor on the App Store → Get it on Google Play →

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.

All codepages (ESC t reference)

CJK: GBK, Big5, UTF-8

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:

ModeTypical useSample
GB18030 / GBKSimplified Chinese firmware (mainland China)简体中文测试
Big5Traditional 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."

Frequently asked

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.