How To Decode A Text Message depends entirely on what kind of encoding is used — and "encoded" is a word that covers a surprisingly wide range of things, from casual SMS shorthand to binary-safe data formats used in software APIs. Before you can decode anything, you need to identify which type of encoding you are actually looking at. This guide walks through every major category, shows you how to recognise each one at a glance, and then gives step-by-step decoding instructions with worked examples.
Types of Encoded Text Messages
Not all "encoded" messages are the same. The word gets used for everything from teenage SMS shorthand to cryptographic transforms. Here are the main categories you are likely to encounter:
1. SMS Abbreviations and Text Slang
The most common type of "encoded" text message is simply informal shorthand. LOL, BRB, TTYL, and IMO are not cryptographic encodings — they are abbreviations that evolved to save keystrokes on numeric keypads before smartphone keyboards became standard. No algorithm is involved; you just need to know what the letters stand for.
| Abbreviation | Meaning |
|---|---|
| LOL | Laughing out loud |
| BRB | Be right back |
| TTYL | Talk to you later |
| IMO | In my opinion |
| OMG | Oh my god |
| IDK | I don't know |
| TBH | To be honest |
| NGL | Not gonna lie |
| IRL | In real life |
| SMH | Shaking my head |
| FWIW | For what it is worth |
| AFAIK | As far as I know |
2. SMS PDU Encoding — GSM 7-bit and UCS-2
When your phone sends an SMS, the network encodes the text before transmission. The default is GSM 7-bit encoding, which packs each character into 7 bits instead of a full byte. This allows up to 160 characters per SMS segment. If your message contains characters outside the basic GSM 7-bit alphabet — such as emoji, Arabic, Chinese, or certain accented letters — the network switches to UCS-2 encoding (16 bits per character), which reduces the per-segment limit to 70 characters.
You do not normally see this encoding as a user — your messaging app handles it transparently. Developers working with SMS APIs or PDU-format raw data may need to decode it, but for everyday purposes it is invisible.
3. Base64-Encoded Text
Base64 is a binary-to-text encoding scheme used when binary data needs to travel through systems that only handle printable ASCII — such as email MIME attachments or JSON API payloads. It converts every 3 bytes of data into 4 printable characters chosen from the set A–Z, a–z, 0–9, +, and /. The output is padded with = or == if the input length is not a multiple of 3.
Example: the word Hello Base64-encodes to SGVsbG8=.
4. Hex-Encoded Text
Hex encoding (hexadecimal) represents each byte of data as exactly two hexadecimal digits (0–9 and A–F). It is commonly used in debugging, networking, and low-level programming output. A hex-encoded message looks like a string of two-character pairs: 48 65 6C 6C 6F decodes to Hello.
5. URL-Encoded Text (Percent-Encoding)
URL encoding (formally called percent-encoding) replaces characters that are not safe in a URL with a % sign followed by two hex digits. A space becomes %20, an exclamation mark becomes %21, and so on. You see this in browser address bars and in query strings passed between web services.
Example: %48%65%6C%6C%6F decodes to Hello.
6. Cipher-Encoded Messages
Classic cipher encodings replace letters with other letters, numbers, or symbols according to a rule:
- Caesar shift — each letter is shifted a fixed number of positions in the alphabet (e.g. A→D, B→E with a shift of 3)
- A1Z26 — each letter is replaced by its position number: A=1, B=2, … Z=26
- Morse code — letters are represented as sequences of dots (·) and dashes (−) separated by spaces
- Atbash — the alphabet is reversed so A=Z, B=Y, and so on
How to Identify Which Encoding You Have
The fastest way to decode a message is to identify its type first. Here are the visual clues:
| What it looks like | Likely encoding |
|---|---|
| Readable words with missing vowels or compressed syllables (e.g. "ttyl", "omg") | SMS abbreviation / slang |
| Pairs of characters from 0–9 and A–F (e.g. "48 65 6C 6C 6F") | Hex encoding |
| Ends in = or == and only uses A–Z, a–z, 0–9, +, / | Base64 |
| Contains %XX patterns (e.g. "%20", "%48%65") | URL percent-encoding |
| Sequences of dots (·) and dashes (−) | Morse code |
| All numbers separated by spaces or dashes (e.g. "8 5 12 12 15") | A1Z26 cipher (1=A, 2=B…) |
| Letters shifted uniformly — recognisable words but wrong letters | Caesar cipher shift |
Step-by-Step: Decoding a Base64 Text Message
Suppose you receive a message body that reads: SGVsbG8sIHdvcmxkIQ==
- Confirm it is Base64. It uses only A–Z, a–z, 0–9, and ends in
==. That is a strong indicator. - Group the characters into blocks of 4. Each group of 4 Base64 characters encodes exactly 3 bytes of original data: SGVs | bG8s | IHdv | cmxk | IQ==
- Convert each Base64 character to its 6-bit index (A=0, B=1, … Z=25, a=26, … z=51, 0=52, … 9=61, +=62, /=63).
- Concatenate the bits and split into 8-bit bytes, then convert each byte to its ASCII character.
- Result: Hello, world!
In practice, you would never do this by hand for a long message. Use our Base64 Encoder/Decoder tool — paste the encoded string and the decoded text appears instantly.
Step-by-Step: Decoding a Hex Text Message
Take the hex string: 48 65 6C 6C 6F
- Split the string into two-character pairs: 48, 65, 6C, 6C, 6F
- Convert each hex pair to a decimal number. Hex uses base-16: the left digit represents 16s, the right digit represents 1s.
- Look up each decimal value in the ASCII table to find the corresponding character.
- Concatenate the characters to form the decoded text.
| Hex | Decimal | ASCII Character |
|---|---|---|
| 48 | 72 | H |
| 65 | 101 | e |
| 6C | 108 | l |
| 6C | 108 | l |
| 6F | 111 | o |
Result: Hello. For longer hex strings, use our ASCII Decoder tool, which handles hex-to-text conversion directly.
Step-by-Step: Decoding an A1Z26 Text Message
A1Z26 is the simplest number cipher: A=1, B=2, C=3, all the way to Z=26. Take the message: 8 5 12 12 15
- Split on spaces (or the separator used in the message). You get: 8, 5, 12, 12, 15.
- Map each number to its alphabet position. Count from A=1.
- Write out the letters in sequence.
| Number | Letter (A=1) |
|---|---|
| 8 | H |
| 5 | E |
| 12 | L |
| 12 | L |
| 15 | O |
Result: HELLO. Use our Letter-Number Converter to decode A1Z26 messages of any length instantly — it also handles numbers-to-letters in reverse.
Step-by-Step: Decoding URL-Encoded Text
URL encoding (percent-encoding) replaces unsafe characters with a % followed by two hex digits representing the character's ASCII code. Take: %48%65%6C%6C%6F
- Split on the % signs. You get the sequences: 48, 65, 6C, 6C, 6F.
- Convert each two-character hex value to decimal, then look up the ASCII character — exactly as in the hex decoding example above.
- Concatenate the results.
Result: Hello. A common real-world example: a URL containing Hello%20World decodes to Hello World, because %20 is the percent-encoded form of a space character (decimal 32, hex 20).
Most browsers decode percent-encoding automatically in their address bars. If you are working with raw API data or query strings, your programming language's standard library almost certainly has a URL-decode function built in.
Tools to Decode Your Text Message
Once you have identified the encoding type, the right tool makes decoding effortless:
- Base64 Encoder/Decoder — paste any Base64 string and decode it instantly; also encodes plain text to Base64.
- Letter-Number Converter — converts between letters and A1Z26 numbers in both directions; supports custom separators.
- ASCII Decoder — decode hex values to their ASCII characters, or look up any ASCII code.
- Letters2NumbersConverter.com Home — the full suite of conversion and cipher tools, including Morse code, Caesar cipher, and more.
Quick Reference: Which Tool to Use
- SGVsbG8= → ends in = and uses only A–Z/a–z/0–9 → Base64 Decoder
- 48 65 6C 6C 6F → pairs of hex digits → ASCII Decoder
- 8 5 12 12 15 → numbers 1–26 → Letter-Number Converter
- %48%65%6C%6C%6F → %XX patterns → browser URL bar or ASCII Decoder
- LOL / BRB / TTYL → SMS slang → no tool needed, see table above
Frequently Asked Questions
How do I decode a text message with random letters and numbers?
Start by identifying the encoding type using the visual clues above. If the text contains pairs of characters from 0–9 and A–F, it is likely hex. If it ends in = or == and uses only the Base64 character set, decode it as Base64. If it contains %XX patterns, it is URL-encoded. Once you know the type, use the matching tool linked in the section above.
What does it mean when a text message is encoded?
"Encoded" can mean several things: informal shorthand (SMS slang), network-level encoding the phone handles automatically (GSM 7-bit or UCS-2), data encoding used by apps and APIs (Base64, hex, URL encoding), or cipher encoding used in puzzles and games (A1Z26, Caesar shift, Morse code). Each category has a distinct appearance and a different decoding approach.
What is the difference between Base64 and hex encoding?
Both are ways to represent binary data as printable text. Hex uses exactly 2 characters per byte (digits 0–9 and A–F), making output exactly twice as long as the input. Base64 encodes 3 bytes as 4 characters, adding roughly 33% overhead. Hex output looks like 48 65 6C 6C 6F; Base64 output looks like SGVsbG8=.
How do I decode an A1Z26 text message?
Split the message on its separator (usually a space or dash), then map each number to its alphabet position: 1=A, 2=B, 3=C, through to 26=Z. For example, 8 5 12 12 15 → HELLO. Our Letter-Number Converter handles this automatically.
What are common SMS text abbreviations?
The most common ones are LOL (laughing out loud), BRB (be right back), TTYL (talk to you later), IMO (in my opinion), OMG (oh my god), IDK (I don't know), TBH (to be honest), NGL (not gonna lie), and IRL (in real life). See the full table earlier in this article for more.
What is GSM 7-bit encoding in SMS?
GSM 7-bit encoding is the default character encoding used by SMS networks for Latin-script messages. It packs each character into 7 bits rather than a full byte, allowing 160 characters per SMS segment. Messages using characters outside this set (such as emoji or non-Latin scripts) switch to UCS-2 encoding, which uses 16 bits per character and limits each segment to 70 characters.
Related Tools and Guides
- Base64 Encoder/Decoder — encode or decode Base64 text instantly
- Letter-Number Converter — A1Z26 numbers to letters and letters to numbers
- ASCII Decoder — hex values to ASCII characters
- Full Tool Suite — Morse code, Caesar cipher, Atbash, and more at Letters2NumbersConverter.com