ISO-8859-2 / Latin-2 Encoder

Show Central European Latin-2 byte values for text in hex

Encode text to ISO-8859-2 (Latin-2) byte values shown as hex. Covers Polish, Czech, Hungarian, Slovak, Croatian, and other Central European languages, with a per-character byte table and clear flags for any character that cannot be represented. Runs locally in your browser. It runs free in your browser on Gera Tools, with nothing uploaded.

Last updated Source: Gera Tools

What languages does ISO-8859-2 cover?

Latin-2 covers Central and Eastern European languages that use the Latin script: Polish, Czech, Slovak, Hungarian, Slovenian, Croatian, Romanian, and others. It includes letters like ą, č, ő, ž, and ł that plain ASCII or Latin-1 lack.

ISO-8859-2, also called Latin-2, is the single-byte character set for Central and Eastern European languages written in the Latin alphabet. It keeps ASCII in the lower half and packs letters like ą, č, ő, ž, and ł into the upper half. This tool shows the exact Latin-2 byte for each character of your text.

How it works

The mapping is a fixed 256-entry table. Bytes 0x000x7F are identical to ASCII, so plain English text encodes the same way it would in any ASCII-compatible charset. Bytes 0xA00xFF are where Latin-2 differs: each holds a specific Central European letter or symbol.

To guarantee the table is exactly the official one, the tool builds it in your browser by decoding every byte 0x000xFF with the platform’s native ISO-8859-2 decoder, then inverts that map for encoding. Each input character is looked up; if it has a Latin-2 byte it is shown in hex, and if not it is flagged as unmapped.

Which languages Latin-2 covers

Latin-2 was designed specifically for Central and Eastern European languages that use a Latin-based alphabet. The languages it supports include:

  • Polish — letters like ą, ć, ę, ł, ń, ó, ś, ź, ż
  • Czech and Slovak — letters like č, ď, ě, ň, ř, š, ť, ů, ž
  • Hungarian — letters like á, é, í, ó, ö, ő, ú, ü, ű
  • Croatian and Slovenian — letters like č, đ, š, ž
  • Romanian — letters like ă, â, î, ș, ț (though Romanian has two encoding variants)

It does not cover Cyrillic-script languages (Russian, Bulgarian, Serbian), which use ISO-8859-5, or Western European languages (French, German, Spanish, Portuguese), which use ISO-8859-1 (Latin-1).

How Latin-2 differs from Latin-1

The two encodings are identical in the lower half (0x00–0x7F, which is ASCII). The difference is entirely in the 0x80–0xFF range. Latin-1 uses that space for Western European symbols and accented characters like é, ä, ñ, and the pound sign. Latin-2 reassigns much of the same byte range to Central European letters instead — so the same byte value represents a completely different character depending on which encoding you declare. This is the core reason encoding declarations in HTML and HTTP headers are essential.

Practical encoding table sample

CharacterLanguageISO-8859-2 byte
ąPolish0xB1
ęPolish0xEA
łPolish0xB3
čCzech0xE8
őHungarian0x51 (0x91 + offsets vary)
žCroatian0xBE

Note: exact byte values should be verified with the encoder for your specific character — the table above is illustrative.

Example and notes

  • The Polish pangram "Pchnąć w tę łódź jeża" encodes with ą as 0xB1, ł as 0xB3 — each a single byte.
  • Latin-2 has no euro sign, no Cyrillic, and no CJK; those will appear as unmapped. For full coverage of any script, use UTF-8 instead.
  • The same upper-half byte means different things across the ISO-8859 family, so always declare the charset explicitly when storing or transmitting Latin-2 text.