2026-10-22
A POS integration engineer receives a support ticket from a restaurant chain expanding into Southeast Asia. The Thermal Receipt Printer works perfectly in the Shanghai stores. In the Bangkok store, the Thai characters on the receipt appear as question marks. In the Ho Chi Minh City store, the Vietnamese diacritics are missing. The engineer checks the printer connection, the driver, and the POS software. All are correctly configured. The problem is the code page. The printer is set to a code page that supports Chinese characters but not Thai or Vietnamese. The receipt printing data is being sent in the correct encoding, but the printer is interpreting it using the wrong character table. This guide explains why multiple code pages matter and how to configure them correctly.
A code page is a table that maps numeric codes to characters. In receipt printing, the POS software sends a stream of bytes to the Thermal Receipt Printer. Each byte or sequence of bytes represents a character. The printer uses its active code page to convert those bytes into the printed characters. If the code page in the printer does not match the encoding used by the POS software, the characters are misinterpreted. This is why a receipt that prints correctly in one language may print as garbled text or question marks in another language. The table below shows common code pages and the languages they support.
| Code page | Standard | Supported languages | Typical region |
| CP437 | IBM | English, Western European | US, Western Europe |
| CP850 | IBM | Western European, Latin | Europe |
| CP936 | GBK | Simplified Chinese | China |
| CP874 | Thai | Thai | Thailand |
| CP1258 | Windows | Vietnamese | Vietnam |
| CP932 | Shift-JIS | Japanese | Japan |
| UTF-8 | Unicode | All languages | Global |
In our factory, we manufacture Thermal Receipt Printer units with firmware that supports multiple code pages. The printer can be configured to use a specific code page through a command or a utility. Xiamen Peite Electronic Technology Co., Ltd. has been manufacturing thermal receipt printers for over 10 years.
The code page configuration involves three layers: the POS software, the printer driver, and the printer firmware. The POS software must send the data in an encoding that matches the printer's code page. The driver must pass the data through without altering the encoding. The printer firmware must have the correct code page selected. The table below shows the configuration steps for a typical setup.
| Layer | Configuration item | Typical setting |
| POS software | Receipt template encoding | Set to match the target language (e.g., CP874 for Thai) |
| Printer driver | Font substitution / encoding | Disable automatic font substitution; pass raw data |
| Printer firmware | Active code page | Select the code page that matches the POS software |
| Printer firmware | International character set | Select the country/language set for the target market |
Integration engineer's note: The most common mistake is to set the code page in the printer but leave the POS software encoding at the default. The POS software sends the data in one encoding, and the printer interprets it in another. The result is garbled text. The correct approach is to match the encoding at all three layers. In our factory, we provide a configuration utility that allows the integrator to set the code page and the international character set from a Windows or Android device. We also provide a test receipt that prints sample characters in the selected code page.
If the code page does not include the characters used in the receipt, the printer will substitute a placeholder character, usually a question mark or a blank space. This is common when a single-byte code page is used for a language that requires multi-byte encoding. For example, CP437 does not include Thai characters or Chinese characters. If the POS software sends Thai text while the printer is set to CP437, the Thai characters will be lost. The table below shows the character support for common receipt languages.
| Language | Required code page | Single-byte or multi-byte | Common issue |
| English | CP437 or CP850 | Single-byte | None |
| Simplified Chinese | CP936 (GBK) | Multi-byte | Requires double-byte character support |
| Thai | CP874 | Single-byte (with extension) | Some printers do not include CP874 in firmware |
| Vietnamese | CP1258 | Single-byte (with combining marks) | Diacritics may not render correctly |
| Japanese | CP932 (Shift-JIS) | Multi-byte | Requires double-byte character support |
In our factory, we offer Thermal Receipt Printer units with firmware that includes code pages for Chinese, Thai, Vietnamese, Japanese, and Korean. We also offer a Unicode-capable model that supports UTF-8, which covers all languages in a single code page. The Unicode model is recommended for multinational chains that need to print receipts in multiple languages from the same printer. Xiamen Peite Electronic Technology Co., Ltd. provides a code page compatibility matrix for each printer model.
UTF-8 is a variable-length encoding that can represent every character in the Unicode standard. It covers all languages, including Chinese, Thai, Vietnamese, Japanese, Korean, Arabic, and Hindi. A Thermal Receipt Printer that supports UTF-8 does not need to switch code pages when the language changes. The POS software sends the receipt data in UTF-8, and the printer renders the characters using its built-in Unicode font. The table below compares the UTF-8 approach with the multi-code-page approach.
| Feature | Multi-code-page approach | UTF-8 approach |
| Language switching | Requires code page change | No change required |
| Font requirements | Separate font for each code page | Single Unicode font |
| Storage requirements | Lower (single-byte for Latin) | Higher (multi-byte for all) |
| Printer firmware complexity | Higher (multiple code page tables) | Lower (single encoding) |
| Recommended for | Single-language stores | Multinational chains |
In our factory, we recommend the UTF-8 model for restaurant chains and retail groups that operate in multiple countries. The UTF-8 model eliminates the code page mismatch problem and simplifies the IT configuration. For single-language stores, the multi-code-page model is more economical and provides adequate performance. Xiamen Peite Electronic Technology Co., Ltd. offers both models and provides technical support for the configuration.
Multiple code pages matter in receipt printing because they determine whether the printer can correctly render the characters used in the receipt. A mismatch between the POS software encoding and the printer code page causes garbled text or question marks. The code page must be configured at three layers: the POS software, the printer driver, and the printer firmware. For single-language stores, a multi-code-page printer is sufficient. For multinational chains, a UTF-8 capable printer simplifies the configuration and eliminates the mismatch problem. Xiamen Peite Electronic Technology Co., Ltd. has been manufacturing Thermal Receipt Printer units for over 10 years and provides full code page support and configuration utilities for our customers.
Xiamen Peite Electronic Technology Co., Ltd. manufactures Thermal Receipt Printer units with multi-code-page firmware and UTF-8 support. We provide code page compatibility matrices, configuration utilities, and test receipts for all of our products.