SMS PDU Decoder & Encoder
🔒 Runs in your browser
Paste a PDU above to decode it.
Segment counter
| Encoding | — |
| Characters | — |
| Per part | — |
| Parts | — |
Romanian diacritics (ș ț ă â î) are not in the GSM-7 alphabet, so the message switches to UCS-2 — 70 characters per part instead of 160.
For lawful, educational and professional-testing use. Provided as is, without warranty.
What an SMS PDU is
When a phone sends or receives a text, the message travels over the air as a Protocol Data Unit (PDU) — a compact hexadecimal string defined by 3GPP TS 23.040. A single PDU packs the service-centre (SMSC) number, the sender or recipient address with its type-of-number, a protocol identifier, the data-coding scheme (DCS), a timestamp on inbound messages, and finally the message text. SMS-DELIVER is the form your handset receives; SMS-SUBMIT is the form it sends. Paste any PDU into the decoder to see every field broken out, or build a fresh SMS-SUBMIT from a number and a message.
GSM-7 vs UCS-2: the 70-character cliff
The default GSM-7 alphabet (TS 23.038) encodes each character in 7 bits, so a single message holds up to 160 characters. The moment your text contains a character outside that alphabet, the whole message must switch to 16-bit UCS-2 and the limit drops to 70 characters per part. Long (concatenated) messages reserve a small header in every part, so the usable budget becomes 153 characters for GSM-7 or 67 for UCS-2 — which is why a message near the boundary can quietly cost one part more than you expect.
Why Romanian diacritics halve your SMS
Romanian ș, ț, ă, â and î are not in the GSM-7 basic set or its extension table, and Romanian has no national language-shift table to add them. So a single ă anywhere in the text forces UCS-2: a 160-character message can suddenly become two 70-character parts, doubling the cost. The encoder shows the chosen encoding, the part count and a one-click preview of the length the same text would have with the diacritics removed. Everything runs in your browser — nothing is uploaded.
Frequently asked questions
What is an SMS PDU?
The PDU (Protocol Data Unit) is the raw hex form of an SMS on the air interface, defined in 3GPP TS 23.040. It packs the sender or recipient number, timestamp, encoding and the message text into one octet string. Paste a PDU to decode it, or type a message to build one.
Why does my SMS split into more parts when I use ș, ț, ă, â or î?
The GSM-7 default alphabet holds 160 characters per part, but Romanian diacritics are not in it (there is no Romanian national shift table), so the message switches to UCS-2 at 70 characters per part. This tool shows the encoding, the part count, and a preview of the length without diacritics.
Is anything uploaded?
No. Decoding and encoding run entirely in your browser using JavaScript. Nothing is transmitted or stored.