Hira sends a text message to her friend: “Hello, kal milte hain.” It arrives perfectly. Next, she sends the same message in Urdu script with a smiley face Data Coding Scheme. The phone says it will be split into three messages. Why? The answer sits inside a tiny hidden setting called the Data Coding Scheme. This guide explains it in simple English.
What Is a Data Coding Scheme?
The Data Coding Scheme, or DCS, is a small field in an SMS that tells the receiving phone how to read the message text. It is described in the 3GPP standards 23.040 and 23.038 under the name TP-DCS. Think of it as a label on a box: “Inside this box are English letters,” or “Inside this box are Unicode characters.”
Without that label, the Data Coding Scheme, the phone would not know how to turn the raw data back into readable words.
Also Read: codex.io
Why Does a Data Coding Scheme Matter?
-
Right characters: It makes sure letters, symbols, and scripts show up correctly.
-
Message length: The Data Coding Scheme decides how many characters fit into one SMS.
-
Special behavior: It can mark flash messages, store-to-SIM messages, and more.
-
Cost: Longer, split messages can cost more when sent in bulk.
The Three Main Character Sets (Data Coding Scheme)
SMS messages use one of three 3-character sets: the GSM 7-bit default alphabet, UCS-2, Data Coding Scheme, or 8-bit data.
1. GSM 7-Bit Default Alphabet (Data Coding Scheme)
This is the standard SMS alphabet. Support for it is mandatory for GSM handsets and network elements. The data coding scheme covers basic English letters, numbers, and common symbols. A message using the default alphabet can have up to 160 characters.
2. 8-Bit Data (Data Coding Scheme)
This is used for binary content or custom coding; the data coding scheme is not normal text. It allows up to 140 octets (bytes). You may see it in things like device settings or special data messages.
3. UCS-2 (Unicode) (Data Coding Scheme)
This is used for languages and symbols that are not in the default alphabet Data Coding Scheme, such as Arabic script, Chinese, and emojis in many cases. A UCS-2 message can hold up to 140 octets, which means up to 70 characters.
Quick Comparison (Data Coding Scheme)
| Character set | Best for | Max in one SMS |
| GSM 7-bit | Basic English text | 160 characters |
| 8-bit data | Binary or special data | 140 bytes |
| UCS-2 | Urdu, Arabic, emoji, and other scripts | 70 characters |
Why Urdu or Emoji Messages Get Split (Data Coding Scheme)
Here is the simple rule: if one character is outside the GSM alphabet, the whole message switches to UCS-2. Then the limit drops from 160 to 70 characters. For long messages that are joined from several parts, the data coding scheme for each part holds fewer characters than a single message data coding scheme, because some space is used to link the parts together. In general, parts hold about 153 characters in GSM 7-bit and 67 in UCS-2.
That is why your short Urdu message with a smiley became several messages.
How the DCS Field Is Built (Data Coding Scheme)
The data coding scheme is a single byte, which is eight bits. Different bits mean different things. Here is the beginner-friendly version.
Character set bits: Bits 3 and 2 show the character set: 00 means GSM 7-bit default alphabet, 01 means 8-bit data, 10 means UCS2, and 11 is reserved.
Message class: The Data Coding Scheme byte can also carry message classes, with Class 0 as flash messages, Class 1 as phone-specific, Class 2 as SIM/USIM-specific, and Class 3 as terminal equipment-specific.
-
Class 0 (flash): Appears on screen right away and may not be saved.
-
Class 1: Stored in the phone’s memory.
-
Class 2: Stored on the SIM card.
-
Class 3: Passed to connected equipment.
Other groups: The standard also covers things like automatic deletion after reading and message waiting indicators, such as a voicemail notice.
Compression: A special Data Coding Scheme value allows message compression, but it is perhaps not used by any operator.
Common DCS Values You May See (Data Coding Scheme)
| DCS (hex) | Meaning |
| 00 | GSM 7-bit default alphabet |
| 04 | 8-bit data |
| 08 | UCS-2 (Unicode) |
| 10 | GSM 7-bit, Class 0 (flash) |
For example, hex 08 means UCS2 with the default class, and hex 18 means UCS2 as a Class 0 flash message. Values for other groups are more complex; use the Data Coding Scheme, so use the official table when you work with them.
DCS in SMS APIs (SMPP and Gateways)
If you send bulk SMS through a gateway, you may see a setting called data_coding. In SMPP, the data coding scheme indicates information that includes, but is not limited to, the character set of the message text.
A warning for developers: SMPP has its own data coding values, which are different from the 03.38 TP- Data Coding Scheme. One provider’s guide shows that a data_coding value of 0 means the default alphabet, which is GSM 03.38, and a value of 8 means a Unicode message encoded with UCS-2. Another provider shows a similar example, using 8 to choose UCS2 for a message. Always read your provider’s documentation, because values can differ between systems.
Step-by-Step: Choosing the Right Encoding
-
Check your text. Does it only use basic English letters and symbols?
-
If yes, use the default GSM 7-bit alphabet.
-
If no, use UCS-2.
-
Use 8-bit only for binary or special data coding schemes.
-
Count the segments before you send bulk messages.
-
Test on real phones, not only on a simulator.
Common Problems and Fixes (Data Coding Scheme)
Problem: Text shows as “?” or strange symbols.
Cause: The Data Coding Scheme says one encoding, but the text was written in another.
Fix: Match the encoding setting to the real text.
Problem: A short message splits into many parts.
Cause: One special character forced UCS-2.
Fix: Remove emojis or special quotes, or accept the shorter limit.
Problem: Smart quotes or dashes break a message.
Cause: Characters copied from word processors are not in the GSM alphabet.
Fix: Replace them with plain quotes and hyphens in the Data Coding Scheme.
Problem: A message shows up as a pop-up and disappears.
Cause: It may be a Class 0 flash message.
Fix: Check the message class in your Data Coding Scheme settings.
Problem: Gateway rejects your message.
Cause: Invalid or unsupported data_coding value.
Fix: Use only the values listed in your provider’s docs.
Tips for Businesses Sending SMS (Data Coding Scheme)
-
Write short messages in plain text when possible.
-
Test every template for special characters in the Data Coding Scheme.
-
Keep one template per language to control length.
-
Avoid unnecessary emojis in cost-sensitive campaigns.
-
Track delivery reports, not just sent counts.
-
Follow local rules for sender names and opt-outs.
The Other Meaning: Data Coding in Research
Some people search “data coding scheme” for research and statistics. In that field, a coding scheme is a set of rules for turning raw information into categories or numbers.
For example, a survey might ask, “How satisfied are you?” Answers become numbers:
-
1 = Very unhappy
-
2 = Unhappy
-
3 = Neutral
-
4 = Happy
-
5 = Very happy
In interviews, Data Coding Scheme researchers might tag each answer with themes like “cost,” “quality,” or “service.” A good coding scheme has:
-
Clear categories
-
Written definitions and examples
-
Rules for unclear cases
-
A codebook that records everything in the Data Coding Scheme
-
Two coders checking each other for agreement
This meaning is different from SMS, so check which one fits your goal.
Conclusions
The data coding scheme is a small piece of data with a big job. It tells phones how to read each message, controls how many characters fit, and decides whether your Urdu text and emojis display correctly. Choose the right encoding, check your provider’s rules and Data Coding Scheme, and test on real devices. A tiny setting like this can save you from broken text and surprise costs.
FAQs
What is a data coding scheme?
It is a field that tells a device how to decode data. In SMS, it shows the character set and message type.
What does DCS stand for?
Data Coding Scheme. In SMS standards, the field is called TP-DCS.
Why does my SMS limit change to 70 characters?
Your message uses a character outside the GSM alphabet, so it switches to UCS-2, which allows fewer characters.
What is a flash SMS?
It is a Class 0 message that shows on the screen right away.
What data_coding value should I use for Unicode?
Many gateways use 8 for UCS-2, but confirm with your provider.
Do all phones support GSM 7-bit?
Yes. Support for it is mandatory for GSM handsets and network elements.
Is the DCS the same in SMPP and GSM?
No. SMPP uses its own values, which differ from the GSM standard.
1 thought on “Data Coding Scheme (DCS): Hidden Setting That Controls SMS”