Cập nhật lần cuối:

Giới hạn ký tự SMS: Cách hoạt động của độ dài tin nhắn và giá cả

13 phút đọc

SMS vẫn được dùng nhiều trong liên lạc doanh nghiệp, ngay cả khi các ứng dụng nhắn tin ngày càng phổ biến. Lợi thế của SMS là khả năng tiếp cận: chỉ cần biết số điện thoại là tin nhắn đến được ứng dụng mặc định của máy, không cần cài đặt ứng dụng, không cần kết bạn trước và không cần kết nối internet. Hiểu giới hạn ký tự là rất quan trọng vì vượt quá giới hạn sẽ chia tin nhắn thành nhiều phần, mỗi phần được tính phí riêng.

Lịch sử 140 byte - Tại sao 160 ký tự?

Ý tưởng về SMS được Friedhelm Hillebrand và Bernard Ghillebaert - hai người tham gia công tác chuẩn hóa GSM - phác thảo vào năm 1984. Mục tiêu là cho một đoạn văn bản ngắn đi ghép vào khe trống của các tín hiệu điều khiển vốn đã chạy sẵn để thiết lập cuộc gọi thoại. Đổi lại việc không phải dựng thêm kênh truyền riêng, độ dài cho phép bị giới hạn ở mức vừa khít định dạng tín hiệu hiện có. Hillebrand kể rằng ông đã viết thử ra các mẫu bưu thiếp và tin nhắn telex, rồi kết luận rằng dưới 160 ký tự là đủ cho phần lớn nội dung cần truyền.

Khi đưa phán đoán đó vào đặc tả, nó trở thành khung 140 byte (1.120 bit). Dữ liệu SMS được chuyển trên kênh tín hiệu SS7 (Signaling System No. 7) và payload của kênh này giới hạn ở 140 byte. Với mã hóa GSM-7 biểu diễn mỗi ký tự trong 7 bit, 1.120 ÷ 7 = 160 ký tự vừa khít. Nói cách khác, 160 ký tự và 70 ký tự (với văn bản Unicode) không phải là hai con số được quyết định riêng rẽ, mà là hai cách diễn đạt của cùng một khung 140 byte. Giới hạn của SMS về bản chất là số byte, không phải số ký tự - đây là điểm khởi đầu cho mọi việc vận hành.

GSM-7 so với UCS-2 - Cách mã hóa SMS hoạt động

Mã hóa SMS chuyển đổi tự động dựa trên các ký tự trong tin nhắn của bạn. Hiểu cơ chế này là bước đầu tiên để quản lý ký tự hiệu quả.

GSM-7 là mã hóa 7-bit bao gồm chữ cái Latin, chữ số và ký hiệu cơ bản. Nó được định nghĩa bởi tiêu chuẩn GSM 03.38 với bộ ký tự cơ bản gồm 128 ký tự và bộ mở rộng sử dụng chuỗi thoát. Các ký tự mở rộng (ví dụ: {, }, [, ], |, ~, ^, \, €) tiêu thụ 2 vị trí ký tự (14 bit) mỗi ký tự.

Tin nhắn chứa ký tự ngoài bộ GSM-7 - chẳng hạn như emoji, ký tự CJK hoặc chữ Ả Rập - kích hoạt chuyển sang mã hóa UCS-2 ở 16 bit mỗi ký tự. Điều này giảm giới hạn xuống 70 ký tự (1.120 ÷ 16 = 70). Điểm quan trọng là ngay cả một ký tự UCS-2 duy nhất cũng buộc toàn bộ tin nhắn sang mã hóa UCS-2, như được giải thích trong hướng dẫn ký tự so với byte.

Mã hóaBit/Ký tựGiới hạn SMS đơnGiới hạn nối/Phân đoạnKý tự được hỗ trợ
GSM-77 bit160 ký tự153 ký tựChữ cái Latin, chữ số, ký hiệu cơ bản
GSM-7 mở rộng14 bit(tiêu thụ 2 vị trí)-{ } [ ] | ~ ^ \ €
UCS-216 bit70 ký tự67 ký tựEmoji, CJK, tiếng Ả Rập, tất cả Unicode

SMS nối - Thông số kỹ thuật

Tin nhắn vượt quá một phân đoạn được gửi dưới dạng SMS nối, chia thành nhiều phân đoạn. Mỗi phân đoạn bao gồm User Data Header (UDH) 6 byte chứa số tham chiếu, tổng số phân đoạn và số phân đoạn hiện tại. Phần overhead 6 byte (48 bit) này giảm dung lượng sử dụng được: GSM-7 giảm từ 160 xuống 153 ký tự mỗi phân đoạn ((1.120 - 48) ÷ 7 = 153), và UCS-2 giảm từ 70 xuống 67 ký tự ((1.120 - 48) ÷ 16 = 67).

Giới hạn theo nhà mạng - phần giống nhau và phần cần tự kiểm tra

Phần giống nhau giữa các nhà mạng là phần kỹ thuật: giới hạn ký tự được suy ra từ khung 140 byte của chuẩn mã hóa, nên bản thân mức trần 160 / 70 ký tự không khác nhau theo nhà mạng. Cách tính phí theo bậc tương ứng với số phân đoạn cũng là mô hình chung. Ngược lại, số tiền của mỗi bậc, số phân đoạn tối đa có thể nối và phạm vi áp dụng của dung lượng miễn phí hay các khoản giảm giá thì khác nhau theo từng nhà mạng, và có những mục không được ghi rõ trên trang chính thức (tính đến tháng 8 năm 2026). Điều kiện của thuê bao đang dùng cần được xác nhận trên trang giá của chính nhà mạng đó.

Một ví dụ có công bố số liệu là SMS trong nước của NTT DOCOMO: giới hạn khi nối là 670 ký tự với văn bản Unicode (1.530 ký tự nếu chỉ dùng chữ số và chữ cái nửa chiều rộng), tương ứng 10 tin nhắn với 67 ký tự (153 ký tự) mỗi phân đoạn. Ở nhà mạng này còn có ngoại lệ theo đường truyền: khi gửi qua liên lạc vệ tinh thì không dùng được SMS dài, chỉ tối đa 70 ký tự. Nắm được cảm giác rằng giới hạn được quyết định bởi "đi qua đường nào" chứ không phải bởi "gói thuê bao nào" sẽ giúp giảm sự cố khi vận hành.

Tùy thiết bị và phiên bản hệ điều hành của người nhận, SMS nối có thể bị hiển thị rời rạc thành nhiều tin. Với các máy cũ, có trường hợp không hỗ trợ SMS nối, nên với tin nhắn quan trọng thì gói gọn trong một tin (dưới 70 ký tự) là cách chắc chắn.

Với SMS quốc tế, cách xử lý thay đổi theo quốc gia đích và nhà mạng trung chuyển. Số phân đoạn tối đa có thể nối, cách xử lý tin nhắn có emoji và cách hiển thị số gửi đều phụ thuộc vào cấu hình phía nhận, nên cùng một nội dung gửi trong nước không chắc sẽ đến nguyên dạng. Khi gửi ra nước ngoài, cách chắc chắn là gửi thử qua đúng đường truyền sẽ dùng thật và kiểm tra hiển thị trên máy thực trước khi phát đi.

Cấu trúc giá SMS

Mỗi phân đoạn SMS được tính phí riêng lẻ. Một tin nhắn GSM-7 161 ký tự trở thành hai phân đoạn, gấp đôi chi phí. Đối với chiến dịch SMS doanh nghiệp, điều này có ý nghĩa ngân sách đáng kể - một ký tự duy nhất vượt quá giới hạn có thể gấp đôi chi phí mỗi tin nhắn trên hàng nghìn người nhận.

Cước gửi SMS là hình thức tính theo lượng, tỷ lệ với số phân đoạn. Ví dụ, cước gửi SMS trong nước của NTT DOCOMO tính đến tháng 8 năm 2026 được chia thành 10 bậc, từ 3,3 yên (đã gồm thuế) đến 33 yên (đã gồm thuế) cho mỗi lần gửi, và các mốc chia bậc là 70 / 134 / 201 ký tự (160 / 306 / 459 nếu chỉ dùng chữ số và chữ cái nửa chiều rộng) - trùng khớp với ranh giới phân đoạn đã tính ở phần trên. Bậc đầu là 3,3 yên, bậc thứ hai 6,6 yên, bậc thứ ba 9,9 yên, và các bậc dài nhất nằm trong khoảng 13,2 đến 33 yên. Phía nhận không bị tính phí. Bảng giá trông như bảng số ký tự, nhưng thực chất là bảng số phân đoạn.

Vì sao SMS dễ được đọc - liên hệ với giới hạn ký tự

SMS vẫn được dùng trong doanh nghiệp vì chỉ cần biết số điện thoại là tin nhắn đến thẳng ứng dụng tin nhắn mặc định của máy, không đòi hỏi thủ tục trước như cài ứng dụng hay kết bạn. Ngay khi đến, thông báo hiện lên và phần đầu nội dung được đưa luôn lên màn hình thông báo. Tính chất "được đọc ngay trên màn hình thông báo" này là điểm mạnh thực tế của SMS.

Chính ở đây giới hạn ký tự phát huy tác dụng. Khung 70 ký tự với văn bản Unicode hoạt động như một áp lực buộc người gửi chỉ viết đúng việc cần nói và hành động kế tiếp (mở liên kết, gọi lại). Ngược lại, khi chia tin dài ra để gửi, ở những máy không hỗ trợ nối tin chúng sẽ hiện thành các tin riêng biệt và thứ tự đến có thể bị đảo. Từ đó suy ra một nguyên tắc: tin nhắn nào càng cần chắc chắn truyền đạt thì càng nên gói trong một tin.

SMS doanh nghiệp và tin nhắn A2P

SMS doanh nghiệp được phân loại là tin nhắn A2P (Application-to-Person). Các trường hợp sử dụng phổ biến bao gồm nhắc nhở cuộc hẹn, thông báo giao hàng, mã xác thực và tin nhắn tiếp thị.

Đối với việc gửi SMS A2P, loại ID người gửi ảnh hưởng đáng kể đến khả năng gửi thành công. Sử dụng mã ngắn hoặc số điện thoại địa phương được nhà mạng phê duyệt giúp giảm nguy cơ bị bộ lọc spam chặn. Tin nhắn gửi từ số quốc tế có tỷ lệ bị chặn cao hơn do lọc ở cấp nhà mạng.

Với SMS tiếp thị, khoảng 120–140 ký tự (GSM-7) là một mức tham chiếu dễ dùng khi soạn nội dung. Cách phân bổ này chỉ là ước lượng khi biên tập: lời chào (15–20 ký tự), nội dung chính (65–75 ký tự), lời kêu gọi hành động (25–30 ký tự) và hướng dẫn hủy đăng ký (15 ký tự) - tổng lại vẫn nằm trong một phân đoạn duy nhất. Nên tránh viết sát mức trần, vì chỉ cần một ký tự phát sinh là tin nhắn bị chia phân đoạn. Nếu nội dung có trường chèn động, hãy kiểm tra trước trường hợp giá trị dài nhất.

Emoji và SMS - Cạm bẫy chuyển đổi mã hóa

Rủi ro lớn nhất với emoji trong SMS là chuyển đổi mã hóa tự động. Thêm một emoji duy nhất vào tin nhắn GSM-7 sẽ buộc toàn bộ tin nhắn sang UCS-2, giảm giới hạn từ 160 xuống 70 ký tự.

Như được trình bày chi tiết trong hướng dẫn đếm Unicode emoji, mức tiêu thụ ký tự của emoji rất khác nhau. Emoji cơ bản (ví dụ: 😀) tiêu thụ 2 vị trí ký tự UCS-2. Emoji kèm bộ điều chỉnh tông da (ví dụ: 👍🏽) tiêu thụ 4 vị trí - 2 cho bàn tay và 2 cho bộ điều chỉnh tông da. Còn chuỗi ZWJ (ví dụ: 👨‍👩‍👧‍👦) tiêu thụ 11 vị trí: bốn hình người × 2 vị trí, cộng 3 ký tự nối ZWJ. Đối với SMS doanh nghiệp, tránh hoàn toàn emoji là cách tiếp cận an toàn nhất.

Nguyên nhân khiến tin nhắn bị chuyển sang UCS-2 ngoài ý muốn thường là những ký tự "trông gần giống nhau" nhưng khác mã. Hay gặp nhất là dấu nháy đơn phải ’ (U+2019) do trình xử lý văn bản hoặc ứng dụng email tự động thay thế, dấu cách toàn chiều rộng (U+3000), dấu ba chấm dạng một ký tự … (U+2026) và dấu ngã dài 〜 (U+301C). Ngược lại, dấu nháy đơn (U+0027) và dấu gạch nối (U+002D) nhập trực tiếp từ bàn phím nằm trong bộ ký tự cơ bản của GSM-7 nên không gây chuyển mã. Ký hiệu tiền tệ cũng không đồng nhất: ¥ và £ nằm trong bộ cơ bản nên chiếm 1 vị trí, còn € thuộc bộ mở rộng nên chiếm 2 vị trí. Văn bản sao chép từ trình soạn thảo văn bản hoặc thân email dễ còn sót những ký tự Unicode khó phân biệt như vậy, nên việc kiểm tra trước khi gửi là không thể bỏ qua.

Thiết kế mã xác thực SMS (OTP)

Mật khẩu một lần (OTP) dựa trên SMS cho xác thực hai yếu tố đòi hỏi lập ngân sách ký tự cẩn thận. Tin nhắn OTP phải bao gồm mã, mô tả ngắn gọn và cảnh báo bảo mật - tất cả trong giới hạn ký tự.

Độ dài mã là điểm cân bằng giữa bảo mật và khả năng sử dụng. Mã 4 chữ số chỉ có 10.000 tổ hợp, còn mã 6 chữ số có 1.000.000 tổ hợp - mức chống tấn công dò toàn bộ chênh nhau 100 lần. Mã gửi qua SMS được xếp vào loại bí mật đi theo một kênh khác với kênh xác thực chính (out-of-band authenticator). Hướng dẫn SP 800-63B (bản thứ 4) của NIST Hoa Kỳ quy định bí mật xác thực do phía xác minh sinh ra phải có độ dài từ 6 chữ số thập phân trở lên - đây là yêu cầu bắt buộc (SHALL) - và nếu bí mật ngắn hơn 64 bit thì việc giới hạn số lần thử cũng là bắt buộc. Nghĩa là chỉ tăng số chữ số thôi thì chưa đủ: nó chỉ có ý nghĩa khi đi kèm cơ chế siết số lần thử. Vượt quá 8 chữ số thì lỗi nhập liệu tăng lên, nên 6 chữ số cộng với giới hạn số lần thử là mức hợp lý trong thực tế.

Ví dụ tin nhắn OTP (42 ký tự): "Mã của bạn là 123456. Hết hạn sau 5 phút. Không chia sẻ." Tin nhắn này vừa thoải mái trong một phân đoạn GSM-7 duy nhất, giữ chi phí ở mức một tin nhắn cho mỗi lần xác thực.

RCS so với SMS - Tin nhắn thế hệ tiếp theo

Tính năngSMSRCS
Giới hạn ký tự160 (GSM-7) / 70 (UCS-2)Dài hơn SMS rất nhiều (khác nhau theo từng dịch vụ)
Phương tiệnChỉ văn bảnHình ảnh, video, âm thanh, tệp
Tương tácKhôngNút, carousel, phản hồi nhanh
Xác nhận đã đọcKhôngCó
Truyền tảiTín hiệu SS7Dựa trên IP (kết nối dữ liệu)
Điều kiện để đến đượcChỉ cần số điện thoại là đến ứng dụng mặc định của máyCần thiết bị và nhà mạng của cả hai phía hỗ trợ

RCS vượt xa SMS về mặt tính năng, nhưng thực tế có dùng được hay không phụ thuộc vào thiết bị và nhà mạng của người nhận. Tại Nhật Bản, dịch vụ "+Message" do NTT DOCOMO, KDDI và SoftBank cùng cung cấp từ năm 2018 là dịch vụ tuân theo RCS (tính đến tháng 8 năm 2026). Điểm khó cho phía gửi là không thể xác nhận trước khi gửi rằng người nhận có đang ở trạng thái dùng được RCS hay không. Vì vậy khi soạn nội dung trong thực tế, cách an toàn là viết trước phần thân vừa trong 70 ký tự của SMS, còn các biểu đạt phong phú thì coi như điểm cộng nếu dùng được. Đường cơ sở cho những liên lạc nhất thiết phải đến vẫn nằm ở phía SMS.

Kỹ thuật SMS chuyên nghiệp

Kết luận

Giới hạn ký tự SMS bắt nguồn từ khung 140 byte được quyết định ở giai đoạn phác thảo năm 1984, thể hiện qua hai mức trần phụ thuộc mã hóa: 160 ký tự cho GSM-7 và 70 cho UCS-2. Chuyển đổi mã hóa tự động, overhead header nối và lạm phát ký tự do emoji tạo ra những cạm bẫy vượt xa việc đếm ký tự đơn giản. Sử dụng Bộ đếm ký tự để xác minh độ dài tin nhắn trước khi gửi, và áp dụng các kỹ thuật kiểm tra mã hóa và lập ngân sách ký tự ở trên để tối ưu hóa cả chi phí lẫn khả năng gửi thành công.

Câu hỏi thường gặp

SMS tối đa bao nhiêu ký tự?
Một đoạn SMS hỗ trợ 160 ký tự (mã hóa 7-bit). Tin nhắn dài hơn sẽ được chia thành nhiều đoạn, tăng chi phí.
Chi phí một tin nhắn SMS là bao nhiêu?
Một đoạn (tối đa 160 ký tự) thường có giá vài cent. Tin nhắn dài hơn chia thành nhiều đoạn, mỗi đoạn tính phí riêng.

Chia sẻ bài viết này