Skip to main content

Leet to Text Decoder

Decode leet speak (1337) back into normal text. Smart best-guess scoring resolves ambiguous symbols, every alternative reading is shown, and nothing here is hidden: decoding leet is lossy, and this tool says so.

Decode 1337 to text

Honest note: decoding leet is lossy — the digit 1 can be I or L, and 0, can be Q or O followed by a comma. The best guess is a guess; check the alternatives when it matters.

Worked examples

Click Try to load any example into the decoder above. Outputs are produced by the same engine.

Leet inputLikely levelDecoded
h3110 w0r1dfullhello world
1337 5p34|<fullleet speak
|-|3|_|_0ultrahello
31173 h4c|<3rfullelite hacker
3m41lfullemail
|2ul35ultrarules
call 5551234 nowno leet patternscall 5551234 now
h3ll0 w0rldmildhello world

Want to go the other way? Convert text to leet speak with the reverse tool.

Reverse substitution chart

Every symbol this decoder recognizes, grouped by the intensity level of the text to leet converter it reverses. Symbols marked with * have more than one possible reading.

SymbolDecodes toFrom level
\/\/ w ultra
|\/| m ultra
/-\ a ultra
|-| h ultra
|\| n ultra
|_| u ultra
0, * q / o, ultra
\/ v ultra
_| j ultra
`/ y ultra
|) d ultra
|* p ultra
|2 r ultra
|3 b ultra
|< k full, ultra
|= f ultra
|_ l ultra
}{ x ultra
! * ! / i ultra
$ s extra
( c ultra
+ * + / t ultra
0 o extra
1 * l / i extra
2 z extra
3 e extra
4 a extra
5 s extra
7 t extra
8 b extra
9 g extra
@ a extra

Known ambiguous cases

Decoding leet is lossy, and this tool does not pretend otherwise. These are the cases it knows about:

SymbolPossible readings
0,q  |  o,
!!  |  i
++  |  t
1l  |  i

Plus two things no decoder can recover: capitalization (output is normalized to lowercase) and intent (2024 could be a year or the word zoza — the number guard keeps it as a year). Multi-character symbols can also overlap: the ultra sequence for LL (|_|_) starts with the symbol for U (|_|), so the decoder tries both tokenizations and scores them.

Frequently asked questions

A leet to text decoder translates leetspeak (1337) back into normal readable text. It reverses substitutions like 3 back to E and 0 back to O. This tool is the reverse pair of our text to leet converter, and it reverses exactly the same three intensity levels: mild, full, and ultra.
Because the mapping is lossy: several letters share the same symbol. The digit 1 can come from I or L, so b1t could be bit or blt. The token 0, can be the letter Q or an O followed by a comma. Capitalization is also lost, since decoding normalizes to lowercase. This tool is honest about that: every ambiguous symbol is listed, and you can pick between the top candidate readings.
The decoder finds every possible reading of your input, up to 64 candidates, then scores each one against a built-in word list of common English words and leet classics like leet, elite, and pwned. The highest-scoring candidate is shown as the best guess, and the next best alternatives are listed below it with their scores, so you can judge for yourself.
The exact substitution sets of the three intensity levels of our text to leet converter: mild (A to 4, E to 3, O to 0), full (the classic single-character swaps plus K to vertical bar less-than), and ultra (multi-character symbols for all 26 letters, such as vertical bar hyphen vertical bar for H). It also recognizes two common extra variants: at sign for A and dollar sign for S. The full reverse chart is shown in the table above.
The decoder runs two passes: one that decodes every digit, and one that keeps digit runs of two or more as literal numbers. Whichever best guess scores higher wins. That is why 31173 becomes elite (a real word beats the digits) while 5551234 and 2024 stay untouched. You can switch the number protection off with the checkbox above the output if you want every digit decoded.
Four tokens have more than one reading: 1 can be L or I, exclamation mark can be punctuation or I, plus can be punctuation or T, and 0, can be Q or O followed by a comma. Multi-character tokens can also overlap: the sequence vertical bar underscore vertical bar underscore reads as LL, but its first three characters alone read as U. The decoder tries every combination and scores them, which is why h3110 correctly becomes hello.
No. Decoding runs entirely in your browser with JavaScript. Nothing you type is uploaded, logged, or stored, so you can safely decode private nicknames or messages.
Privacy: decoding runs 100% in your browser with JavaScript. No text is uploaded, logged, or stored anywhere.

Free tool by NRTechStudio