ISO-8859-11 ISO-8859-11 (Thai) ISO-8859
A Thai-script encoding closely based on the TIS-620 national standard, with Thai's characteristic stacked vowel and tone marks.
What it is
ISO-8859-11 encodes Thai script, and is closely based on — and nearly identical to — the Thai Industrial Standard TIS-620, which predates it. Thai text has distinctive combining vowel and tone-mark characters that stack above or below consonants, which single-byte encoding handles at the character-assignment level but, as with other complex scripts, doesn't address rendering/shaping — that's a separate concern.
Byte structure
| Byte range | Content |
|---|---|
| 0x00–0x7F | Identical to ASCII |
| 0xA0–0xFF | Thai consonants, vowels, tone marks, and symbols |
Why your text is garbled (symptom → cause)
| Symptom | Likely cause |
|---|---|
| Thai text unreadable | Encoding mismatch — text is Windows-874 (more common on Windows) misread as ISO-8859-11, or vice versa (the two are extremely similar but not byte-identical) |
| Vowel/tone marks appear detached or misplaced relative to consonants | Rendering/shaping issue in the display layer, not an encoding problem — Thai's stacking diacritics require font/rendering support for correct positioning |
Compatibility & gotchas
- Nearly identical to Windows-874 — the two overlap heavily, with Windows-874 essentially being the Windows code page implementation of the same TIS-620-based character set, plus a few additional characters in the 0x80–0x9F range following the familiar Windows-125x pattern.
- Also nearly identical to TIS-620, the original Thai national standard this encoding is based on — differences are minor and rarely matter in practice.
- Correct decoding doesn't guarantee correct rendering — Thai's combining vowel/tone marks need proper font and text-shaping support to display correctly positioned relative to base consonants, separate from the encoding itself.
Fixing it
- Command-line conversion:
iconv -f ISO-8859-11 -t UTF-8 input.txt -o output.txt(orTIS-620, often interchangeable in practice)
Comparison
| Encoding | Key difference from ISO-8859-11 |
|---|---|
| Windows-874 | Near-identical, with additional printable characters in the 0x80–0x9F range |
| TIS-620 | The original Thai national standard this encoding closely follows |
| UTF-8 | Full Unicode coverage, the modern default |
FAQ
Is ISO-8859-11 the same as TIS-620?
Nearly — ISO-8859-11 closely follows the TIS-620 Thai national standard, with minor differences that rarely matter in practical decoding.
Why do Thai vowel marks sometimes appear in the wrong position?
This is a text-rendering/shaping issue, not an encoding issue — Thai's combining vowel and tone marks need proper font/shaping support to stack correctly above or below consonants, which is handled separately from character decoding.
Fun fact
Thai script's requirement for correctly stacked, combining vowel and tone marks made it one of the more instructive real-world test cases during early Unicode complex-text-rendering development, alongside Arabic and Hebrew's bidi/shaping requirements — each representing a different category of "encoding alone isn't enough" rendering complexity.