SEA Mojibake & Legacy Encoding Fixer — TIS-620, Windows-1258, VISCII
Fix garbled Thai and Vietnamese text — get ranked candidate decodings across TIS-620, Windows-1258, and VISCII, 100% in your browser.
Paste input above, or try an example.
About SEA Mojibake & Legacy Encoding Fixer — TIS-620, Windows-1258, VISCII
Legacy database migrations and data recovery in Thailand and Vietnam constantly produce mojibake — text where Thai or Vietnamese was stored in an old 8-bit encoding and later read as UTF-8, or vice-versa, leaving garbled characters like สวัสดี instead of สวัสดี. Generic mojibake fixers only offer Latin-1, Windows-1252, and East-Asian encodings; none let you decode TIS-620/Windows-874 (Thai), Windows-1258 (Vietnamese), or VISCII (Vietnamese). This tool does, and ranks the candidates for you.
Two modes. In mojibake mode, paste the garbled text: the tool reconstructs the original bytes (interpreting the string as Latin-1 or Windows-1252, the two common misreads) and re-decodes them with each Southeast Asian target encoding, then ranks the results by how much valid Thai or Vietnamese they contain. In raw-bytes mode, paste hex or base64 and see every candidate decoding side by side. Windows-1258 output is normalized to precomposed (NFC) Vietnamese, and VISCII is decoded from a bundled table verified against RFC 1456, since browsers do not support it natively.
Everything runs locally in your browser — nothing is uploaded. Candidate decodings are scored by the proportion of code points that fall in the Thai block or the Vietnamese Latin ranges, with replacement characters (U+FFFD) penalized, so the most plausible fix rises to the top. It is a recovery aid: always eyeball the result, because several encodings can produce plausible-looking output for the same bytes.
How to use SEA Mojibake & Legacy Encoding Fixer — TIS-620, Windows-1258, VISCII
Choose a mode
Use mojibake mode for garbled text you can see, or raw-bytes mode to paste hex/base64 you want to decode.
Paste the input
Drop in the garbled string, or the bytes. Try an example if you just want to see how it works.
Read the ranked candidates
Each candidate shows the decoded text and which encoding produced it, ranked by how much valid Thai/Vietnamese it contains.
Pick and copy
Copy the decoding that reads correctly. Several encodings can look plausible, so verify the top result by eye.