UCS-2 là cách mã hoá dành mỗi ký tự đúng 16 bit, tức 2 byte. Mạng di động chuyển tin sang UCS-2 ngay khi trong nội dung có một ký tự không thuộc bảng GSM-7 — chữ tiếng Việt có dấu, emoji, dấu ngoặc kép cong đều thuộc nhóm này.
Cách tính số ký tự của tin dùng UCS-2
Một tin chở được 140 byte dữ liệu, chia cho 2 byte mỗi ký tự ra sức chứa của bảng mã này.
| Trường hợp | GSM-7 | UCS-2 |
|---|---|---|
| Tin đơn | 160 | 70 |
| Mỗi phần khi tin bị ghép | 153 | 67 |
Hai bảng mã không trộn lẫn trong một tin: một chữ “ệ” ở dòng cuối cũng kéo toàn bộ nội dung sang UCS-2. Điện thoại hiện đại thực ra mã hoá theo UTF-16, nên emoji nằm ngoài vùng cơ bản chiếm 2 đơn vị thay vì 1, còn chữ Việt dựng sẵn thì luôn vừa một đơn vị.
Tin nhắn tiếng Việt đắt hơn vì UCS-2
Cùng một nội dung, bản có dấu thường tốn gấp đôi số tin so với bản không dấu.
Một tin thông báo lịch họp phụ huynh dài 126 ký tự có dấu bị tách thành 2 phần, phần đầu 67 ký tự; bỏ dấu thì cả câu nằm gọn trong 1 tin GSM-7 và nhà trường trả một nửa tiền. Tôi vẫn khuyên giữ dấu cho tin có tên người, địa chỉ hay số tiền: đọc nhầm một địa chỉ tốn kém hơn nhiều so với tiền một tin nhắn. Số ký tự trong bảng trên theo chuẩn bảng mã, còn mức giá và trần ký tự thật do cổng gửi tin của từng nhà cung cấp đặt.
Công cụ liên quan tới UCS-2
Ba công cụ và một trang thuật ngữ sau làm việc trên cùng bài toán sức chứa tin nhắn.
- Đếm ký tự SMS hiện bảng mã, số ký tự tính phí và số tin ngay khi gõ.
- Cắt văn bản theo ký tự chia thông báo dài thành từng phần không đứt chữ.
- Đếm byte UTF-8 so sánh dung lượng của cùng đoạn chữ ở các bảng mã khác.
- Phân đoạn SMS nói kỹ cách tính số tin khi nội dung vượt một tin.