Đếm ký tự SMS trả lời ngay câu hỏi quyết định giá gửi: tin không dấu được 160 ký tự, còn chỉ một chữ có dấu tiếng Việt là cả tin chỉ còn 70 ký tự. Dán nội dung vào ô trên, công cụ báo bảng mã, số ký tự tính phí, số tin và những ký tự đã kéo tin sang bảng mã đắt hơn. Mọi phép đếm chạy trên trình duyệt, không lưu dữ liệu.
Cách đếm ký tự SMS: xét bảng mã trước, đếm sau
Công cụ đếm ký tự SMS theo chuẩn GSM 03.38 (3GPP TS 23.038), cùng thứ tự mà tổng đài dùng để tính phí.
- Chuẩn hoá văn bản về dạng dựng sẵn NFC, để chữ “ệ” gõ theo kiểu tổ hợp vẫn là 1 ký tự chứ không phải 3.
- So từng ký tự với bảng GSM-7. Nếu mọi ký tự đều có trong bảng, tin dùng GSM-7; riêng các ký tự của bảng mở rộng như ^ { } [ ] ~ \ | € tính 2.
- Chỉ cần một ký tự nằm ngoài bảng (chữ có dấu, emoji, dấu ngoặc kép cong), cả tin chuyển sang UCS-2 và được đếm theo đơn vị UTF-16.
- Tin không vượt sức chứa tin đơn thì tính 1 tin. Dài hơn thì tin bị ghép: mỗi phần nhường vài ký tự cho phần đầu nối, số tin bằng độ dài chia sức chứa mỗi phần, làm tròn lên.
Sức chứa của hai bảng mã mà công cụ đang dùng:
| Bảng mã | 1 tin | Mỗi phần khi ghép |
|---|---|---|
| GSM-7 (không dấu, trong bảng GSM 03.38) | 160 | 153 |
| UCS-2 (có bất kỳ chữ có dấu / emoji) | 70 | 67 |
Công cụ cho tin ghép dài tối đa 1.600 ký tự; cổng gửi tin của từng nhà cung cấp có thể đặt trần thấp hơn. Quy tắc chuẩn hoá và đếm ký tự dùng chung cho mọi công cụ trên site được giải thích ở trang phương pháp đếm.
Vì sao tin nhắn có dấu chỉ được 70 ký tự
Bảng GSM-7 chỉ có 128 ký tự cơ bản cho chữ Latinh không dấu và một ít chữ Tây Âu, nên không có chỗ cho ê, ơ, ư hay dấu thanh tiếng Việt.
Mỗi ký tự GSM-7 tốn 7 bit, nhờ vậy 140 byte dữ liệu của một tin chứa được 160 ký tự. Bảng mã UCS-2 dùng 16 bit cho mỗi ký tự, cùng 140 byte ấy chỉ chứa 70. Hai bảng mã không trộn trong một tin, nên một chữ “ệ” ở cuối cũng làm cả tin tốn chỗ gấp đôi.
Có một chi tiết ít người để ý: bảng GSM-7 có sẵn à, è, é, ù, ì, ò vì tiếng Pháp và tiếng Ý cần chúng. Tin “Là” vẫn là GSM-7, còn “Lê” thì không. Công cụ liệt kê riêng những chữ đang kéo cả tin sang UCS-2.
Ví dụ: tin chúc Tết và tin khuyến mãi của một cửa hàng
Bốn tin dưới đây nằm trong bộ kiểm thử của công cụ, số liệu là kết quả thật khi đếm ký tự SMS trong ô phía trên.
| Nội dung tin | Bảng mã | Ký tự tính phí | Số tin |
|---|---|---|---|
| Chúc mừng năm mới! Kính chúc quý khách an khang thịnh vượng. | UCS-2 | 60 | 1 |
| Cùng lời chúc đó sau khi bỏ dấu | GSM-7 | 60 | 1 |
| Tin khuyến mãi có dấu dài 126 ký tự | UCS-2 | 126 | 2 (67 + 59) |
| Gia 5€ {ok} | GSM-7 | 14 | 1 |
Dòng thứ ba giải thích vì sao nhiều shop gửi tin không dấu: 126 ký tự có dấu tốn 2 tin, bỏ dấu thì cùng nội dung nằm gọn trong 1 tin GSM-7. Ở dòng cuối, dấu € và cặp ngoặc nhọn không đẩy tin sang UCS-2, nhưng mỗi ký tự vẫn tính gấp đôi nên 11 ký tự nhìn thấy thành 14.
Trường hợp đặc biệt khiến tin nhắn tốn thêm tin
Nhiều tin không dấu vẫn bị tách vì những ký tự khó nhận ra bằng mắt.
- Dấu ngoặc kép cong “ ” và dấu nháy cong ’ do Word hoặc bàn phím điện thoại tự đổi: chúng nằm ngoài GSM-7, tin lập tức chỉ còn 70 ký tự.
- Emoji đẩy tin sang UCS-2 và thường chiếm 2 ký tự mỗi hình; emoji ghép như cờ hay gia đình còn chiếm nhiều hơn.
- Dấu cách không ngắt (NBSP) dán từ web hoặc Excel trông giống dấu cách thường nhưng không có trong bảng. Công cụ phát hiện ký tự ẩn chỉ ra đúng vị trí của chúng.
- Gạch ngang dài – và dấu ba chấm liền … cũng nằm ngoài GSM-7; thay bằng – và … là tin trở lại 160 ký tự.
Tôi coi dấu ngoặc kép cong là chỗ nên soát đầu tiên, vì điện thoại tự đổi mà người soạn tin không hề biết.
Cách gửi 1 tin thay vì 2
Muốn nội dung nằm trong 1 tin, bỏ dấu là cách chắc chắn nhất, sau đó mới tới rút gọn câu.
Khi tin là UCS-2, công cụ hiện sẵn bản bỏ dấu kèm số tin mới, sao chép là dùng được. Cần xử lý cả danh sách tin hoặc giữ lại chữ đ thì mở công cụ bỏ dấu tiếng Việt. Tôi vẫn giữ dấu cho tin có tên người, địa chỉ hoặc số tiền, vì một cuộc gọi hỏi lại tốn hơn một tin nhắn.
Chuỗi thông báo quá dài buộc phải chia nhỏ thì dùng cắt văn bản theo ký tự: mỗi phần dừng ở dấu cách hoặc cuối câu, không đứt giữa chữ.
Công cụ liên quan
- Đếm byte UTF-8 cho thấy mỗi chữ có dấu tốn 2–3 byte, cần khi hệ thống gửi tin giới hạn theo byte chứ không theo ký tự.
- Đếm ký tự online dùng cho các nơi không tính theo bảng mã SMS, có số ký tự có và không có dấu cách.
- Kiểm tra giới hạn mọi nền tảng đặt cùng một đoạn cạnh SMS, Zalo, Facebook và X để thấy nơi nào vượt.
- Đếm ký tự Zalo hữu ích khi chuyển thông báo từ SMS sang tin nhắn hoặc bài đăng Zalo.
Câu hỏi thường gặp
Vì sao tin nhắn có dấu bị tách thành 2 tin?
Tin có dấu tiếng Việt dùng bảng mã UCS-2, mỗi tin chỉ chứa 70 ký tự thay vì 160. Vượt mức đó, tin bị ghép và mỗi phần còn 67 ký tự, nên một tin khuyến mãi 126 ký tự đã thành 2 tin. Bỏ dấu, cùng nội dung ấy nằm gọn trong 1 tin GSM-7.
Bỏ dấu tin nhắn có làm khách hiểu sai không?
Có thể, với những chữ chỉ khác nhau ở dấu như “ca”, “cá”, “cà”, hoặc khi tin kèm tên người và số tiền. Mã xác thực, lịch hẹn, thông báo giao hàng thường vẫn rõ nghĩa khi không dấu. Tin có địa chỉ hay điều kiện khuyến mãi nên giữ dấu và chấp nhận thêm tin, hoặc viết ngắn lại.
Emoji trong SMS tính mấy ký tự?
Emoji nằm ngoài bảng GSM-7 nên cả tin chuyển sang UCS-2, chỉ còn 70 ký tự mỗi tin. Phần lớn emoji chiếm 2 đơn vị UTF-16, tức tính như 2 ký tự; emoji ghép như cờ quốc gia tốn nhiều hơn.
SMS brandname có giới hạn ký tự khác tin thường không?
Không khác về cách đếm. Brandname chỉ thay số điện thoại người gửi bằng tên thương hiệu, còn ký tự vẫn tính theo GSM-7 hoặc UCS-2 và tiền tính theo số tin sau khi ghép. Khác biệt nằm ở quy định của đơn vị cung cấp dịch vụ, nên hỏi họ trần ký tự và mẫu tin được phép.
Tin nhắn Zalo hay iMessage có tính giống SMS không?
Không. Zalo, iMessage và Messenger gửi qua Internet nên không dùng bảng mã GSM-7 hay UCS-2 và không tách tin theo 160 hoặc 70 ký tự. Mỗi ứng dụng có giới hạn độ dài riêng, rộng hơn nhiều. Chỉ khi iPhone mất Internet và được bật gửi dưới dạng SMS thì cách tính ở trang này mới áp dụng.
Dấu cách và xuống dòng có tính là ký tự không?
Có. Dấu cách và dấu xuống dòng đều có trong bảng GSM-7, mỗi cái tính 1 ký tự như một chữ cái. Hai dấu cách liền nhau hay dòng trống cuối tin vẫn tính phí, nên trước khi gửi hàng loạt hãy xoá khoảng trắng thừa. Riêng dấu cách không ngắt dán từ web thì nằm ngoài bảng.
Căn cứ và nguồn
- 3GPP TS 23.038 (bảng mã GSM 03.38): bảng ký tự GSM-7 cơ bản, bảng mở rộng và cách mã hoá UCS-2 cho tin nhắn.
- What is the SMS character limit? — Twilio: sức chứa 160/153 ký tự với GSM-7 và 70/67 ký tự với UCS-2 khi ghép tin.
- TCVN 6909:2001, bộ mã tiếng Việt Unicode dạng dựng sẵn: cơ sở để chuẩn hoá NFC trước khi đếm.
Kiểm tra: 16/09/2026. Công cụ đếm ký tự SMS tính theo chuẩn bảng mã; số tin và giá thực tế do cổng gửi tin của từng nhà cung cấp quyết định.