The switch to Unicode is the expensive surprise. A curly apostrophe, a long dash or one emoji moves the whole message to Unicode, so a 150-character text becomes three billed parts instead of one.
Some GSM characters also count double: € [ ] { } ^ ~ | and \ each use two of the 160.
WhatsApp message templates work differently. Meta sets a limit for each part of a template: 60 characters for the header, 1,024 for the message, 60 for the footer and 25 for a button. A template over a limit is rejected until you shorten it.
| Encoding | One message | Each part when split |
|---|---|---|
| GSM-7 (plain characters) | 160 characters | 153 characters |
| Unicode (UCS-2) | 70 characters | 67 characters |