UCS-2

The 16-bit SMS encoding used for most emoji and non-Latin scripts: 70 characters per segment, 67 once concatenated.

Definitions only — a term explained here is not a service we sell.

UCS-2 encodes nearly any script at 16 bits per character, which cuts an SMS segment to 70 characters. One character outside the GSM-7 alphabet (most emoji and most non-Latin scripts) switches the whole message to UCS-2.

The encoding is chosen per message, so one character outside GSM-7 changes the whole text.

Encoding, units and segments

Encoding
UCS-2
Characters
22
Units
23
Segments
1
A sample message's encoding, character count, size in code units and segment count.
Text description

The figure lists the encoding chosen for one sample message, its character count, its size in encoding units and the number of segments that size needs. For UCS-2, units are 16-bit code units.

How the encoding is chosen

SMS starts in GSM-7. A character outside that alphabet moves the message to UCS-2, or to another coding the network supports. The switch covers the whole message, so characters that fit GSM-7 also take two bytes.

A segment holds 70 characters, because 140 bytes divided by two bytes per character leaves 70. A supplementary-plane emoji needs two UTF-16 code units, and handsets and centers in practice send UTF-16, so emoji-heavy text fits fewer characters; strict UCS-2 cannot encode it at all. The SMS segment calculator shows the count.

FAQ

Is UCS-2 the same as UTF-16?

Close but not identical. UCS-2 uses a fixed 16-bit unit; UTF-16 uses surrogate pairs outside the basic plane, and handsets and centers in practice send UTF-16.

How many characters fit in a UCS-2 segment?

Seventy without a user data header, sixty-seven with one. A supplementary-plane emoji takes two UTF-16 code units and cannot be encoded in strict UCS-2.

Which languages need UCS-2?

Many non-Latin scripts, and any text with characters outside GSM-7. Some accented Latin letters already need it.

Learn more

Sources

  1. 3GPP TS 23.038: alphabets and language-specific information for SMS