Công cụ đếm tin nhắn SMS là gì?
Công cụ này cho bạn biết tin nhắn của mình sẽ chiếm bao nhiêu phân đoạn SMS, được mã hóa theo kiểu nào (GSM-7 hay UCS-2/Unicode), và còn lại bao nhiêu ký tự trước khi phải thêm một đoạn mới. Nhà mạng tính cước theo từng đoạn, nên một tin nhắn mà bạn nhìn thấy là "một dòng" vẫn có thể bị tính tiền bằng nhiều SMS nếu vượt quá giới hạn.
Cách sử dụng
Dán hoặc gõ nội dung tin nhắn, sau đó chọn chế độ mã hóa. Tự nhận diện sẽ chọn GSM-7 nếu mọi ký tự đều nằm trong bảng chữ cái GSM-7, ngược lại sẽ chuyển sang UCS-2. Bạn cũng có thể buộc dùng một trong hai kiểu mã hóa để so sánh chênh lệch chi phí.
Giải thích công thức
Một tin nhắn đơn (1 đoạn) chứa được 160 ký tự với GSM-7 hoặc 70 ký tự với UCS-2. Khi vượt quá giới hạn này, mỗi đoạn phải gánh thêm phần đầu (header) để ghép nối, nên dung lượng giảm xuống còn 153 ký tự (GSM-7) hoặc 67 ký tự (UCS-2) mỗi đoạn. Số đoạn được tính bằng ceil(độ dài / giới hạn mỗi đoạn).
$$\text{Segments} = \begin{cases} 1 & L \le 160 \\[4pt] \left\lceil \dfrac{L}{153} \right\rceil & L > 160 \end{cases} \qquad L = \text{GSM-7 length of }\text{Message}$$
$$\text{Segments} = \begin{cases} 1 & L \le 70 \\[4pt] \left\lceil \dfrac{L}{67} \right\rceil & L > 70 \end{cases} \qquad L = \text{length of }\text{Message}$$
Ví dụ minh họa
Một tin nhắn GSM-7 dài 200 ký tự đã vượt mốc 160 ký tự của tin đơn, nên phải chia thành nhiều đoạn: \(\lceil 200 / 153 \rceil = 2\) đoạn. Tổng dung lượng là \(2 \times 153 = 306\) ký tự, còn lại \(306 - 200 = 106\) ký tự trước khi cần đến đoạn thứ ba.
Câu hỏi thường gặp
Vì sao tin nhắn của tôi bị chia ở mốc 153 chứ không phải 160? Tin nhắn nhiều đoạn phải dành 7 byte ở mỗi đoạn cho phần header — đây là phần giúp điện thoại ghép các đoạn lại thành một tin hoàn chỉnh.
Điều gì khiến tin nhắn buộc dùng mã hóa UCS-2? Bất kỳ ký tự nào nằm ngoài bảng chữ cái GSM-7 — như emoji phổ biến, dấu nháy cong, hay nhiều chữ có dấu (kể cả tiếng Việt có dấu) — đều khiến toàn bộ tin nhắn chuyển sang UCS-2, kéo giới hạn xuống còn 70/67 ký tự.
Các ký tự mở rộng của GSM-7 có tốn thêm chỗ không? Những ký tự như {, }, [, ], |, ^, ~, \ và € chiếm 2 đơn vị mỗi ký tự trong GSM-7 vì cần thêm một ký tự thoát (escape).