Xoá dấu tiếng Việt cho câu “Đếm từ online miễn phí” thay 5 ký tự có dấu và trả về “Dem tu online mien phi”, vẫn đủ 22 ký tự; bật tạo slug thì được “dem-tu-online-mien-phi”. Khi bản không dấu vừa bảng mã GSM-7, công cụ hiện thêm băng SMS so số ký tự và số tin trước, sau khi bỏ dấu. Văn bản xử lý trên trình duyệt, không lưu dữ liệu.
Cách xoá dấu tiếng Việt: tách dấu ra rồi bỏ đi
Công cụ không tra bảng “á → a” cho từng chữ mà dùng chuẩn hoá Unicode: tách mỗi chữ thành chữ gốc cộng dấu, bỏ phần dấu, rồi ghép lại.
- Chuẩn hoá văn bản về dạng dựng sẵn NFC để chữ gõ bằng bảng mã tổ hợp và dựng sẵn cho cùng kết quả.
- Tách về dạng NFD: “ệ” thành “e” + dấu mũ + dấu nặng.
- Xoá mọi dấu tổ hợp (nhóm ký tự Unicode Mark). Dấu thanh, dấu mũ của â ê ô, dấu móc của ơ ư và dấu trăng của ă đều thuộc nhóm này.
- Đổi đ → d và Đ → D nếu tuỳ chọn “Đổi đ/Đ → d/D” đang bật (mặc định bật).
- Ghép lại về NFC. Chữ số, dấu câu, dấu cách và xuống dòng giữ nguyên.
Bật “Tạo slug URL (chữ-thường-gạch-nối)”, công cụ làm thêm ba bước: luôn đổi đ thành d, chuyển về chữ thường, thay mọi chuỗi ký tự không thuộc a–z và 0–9 bằng một dấu gạch nối, bỏ gạch nối ở hai đầu. Ô “ký tự có dấu đã thay” đếm theo grapheme, cùng quy tắc ở trang phương pháp đếm.
Vì sao chữ đ phải đổi riêng
Chữ đ không có dạng tách trong Unicode, nên bước bỏ dấu tổ hợp không chạm được vào nó.
Trong Unicode, “ê” là “e” cộng dấu mũ và có thể tách ra, còn “đ” (U+0111) là một chữ cái độc lập, nét gạch ngang không phải dấu tổ hợp. Những công cụ chỉ làm NFD rồi xoá dấu sẽ cho ra “Đem tu” thay vì “Dem tu”. Vì vậy công cụ để riêng tuỳ chọn đ/Đ: tắt đi khi bạn muốn giữ chữ đ cho dễ đọc, như “Đem” trong bộ kiểm thử. Slug thì luôn đổi, vì đ nằm ngoài a–z và sẽ bị thay bằng gạch nối, ra kiểu “-em” rất khó hiểu.
Ví dụ: slug và tên ảnh cho một bài WordPress
Người quản trị một site WordPress cần slug cho bài “Đếm từ online miễn phí” và tên file ảnh minh hoạ; các dòng sau lấy từ bộ kiểm thử của công cụ.
| Văn bản gốc | Tuỳ chọn | Kết quả | Ghi chú |
|---|---|---|---|
| Đếm từ online miễn phí | Mặc định | Dem tu online mien phi | 22 ký tự, đã thay 5 |
| Đếm từ online miễn phí | Tạo slug URL | dem-tu-online-mien-phi | dán thẳng vào ô slug của bài |
| Đếm | Tắt đổi đ/Đ | Đem | giữ chữ Đ |
| ” Giá: 250.000đ!! “ | Tạo slug URL | gia-250-000d | dấu cách, dấu hai chấm, dấu chấm, chấm than đều gộp thành gạch nối |
Dòng cuối cho thấy dấu chấm phân cách nghìn cũng thành gạch nối: “250.000” thành “250-000”. Nếu muốn “250000”, xoá dấu chấm trong tiêu đề trước khi tạo slug. Tôi khuyên rút slug xuống 3–5 chữ chính, bỏ các tiếng như “và”, “của”, “cho” để đường dẫn ngắn và dễ đọc trên kết quả tìm kiếm; công cụ không tự bỏ, vì chọn chữ nào giữ là việc của người viết.
Bỏ dấu tin nhắn để mỗi tin chứa nhiều ký tự hơn
Tin nhắn có một chữ có dấu chỉ chứa 70 ký tự mỗi tin; bỏ hết dấu, cùng nội dung được 160 ký tự nếu mọi ký tự còn lại thuộc bảng GSM-7.
Với câu mẫu ở trên, băng SMS báo bản có dấu dùng UCS-2 và bản không dấu dùng GSM-7. Băng này chỉ hiện khi bản không dấu thật sự vừa GSM-7; nếu còn chữ Đ (tắt đổi đ/Đ), dấu ngoặc kép cong hay emoji thì băng ẩn đi, vì tin vẫn bị tính như có dấu. Muốn xem chi tiết từng tin ghép, dán kết quả vào đếm ký tự SMS.
Tôi không khuyên bỏ dấu mọi tin: “ca”, “cá”, “cà” không dấu đều là “ca”, và một tin hẹn giờ hay báo số tiền đọc nhầm sẽ tốn hơn một tin nhắn thêm.
Trường hợp đặc biệt khi bỏ dấu và tạo slug
Công cụ chỉ bỏ dấu tổ hợp và đổi đ, nên vài loại ký tự đi qua mà không đổi.
Dấu ngoặc kép cong và gạch ngang dài giữ nguyên trong chế độ thường; trong chế độ slug chúng biến thành gạch nối. Emoji thì có chỗ bất ngờ: ký tự biến thể và dấu khung phím cũng thuộc nhóm dấu tổ hợp, nên trái tim đỏ có thể thành trái tim dạng chữ đen trắng, còn emoji số 1 trong khung chỉ còn chữ số “1”. Chữ cái Latinh có dấu của ngôn ngữ khác như “ç”, “ñ”, “ü” cũng được bỏ dấu, còn “ø” hay “ß” không có dạng tách nên giữ nguyên, và trong slug bị thay bằng gạch nối.
Tên file tạo trên macOS thường lưu chữ có dấu ở dạng tổ hợp, trong khi tên gõ lại trên Windows ở dạng dựng sẵn. Hai tên trông giống hệt nhưng đường dẫn ảnh có thể không khớp khi chuyển máy chủ. Đặt tên file ảnh không dấu từ đầu tránh được lỗi này, và tên file mô tả nội dung còn giúp công cụ tìm kiếm hiểu ảnh.
Công cụ liên quan
- Đếm ký tự SMS tiếng Việt tính số tin thật sau khi bỏ dấu, kể cả ký tự bảng mở rộng tính gấp đôi.
- Chuyển chữ hoa thường dùng trước khi bỏ dấu nếu cần tên file hay mã sản phẩm viết hoa.
- Tìm và thay thế xoá hàng loạt tiếng thừa như “và”, “của” khỏi danh sách tiêu đề trước khi tạo slug.
- Đếm ký tự title và meta kiểm tra độ dài tiêu đề bài viết đi kèm slug vừa tạo.
Câu hỏi thường gặp
Bỏ dấu tiếng Việt trong Word hoặc Excel được không?
Word và Excel không có nút bỏ dấu sẵn. Unikey có công cụ chuyển mã với tuỳ chọn loại bỏ dấu, làm trên văn bản trong clipboard. Trong Excel phải viết hàm thay từng chữ hoặc dùng macro. Với vài trăm dòng tên, dán cả cột vào công cụ trên trang, xoá dấu tiếng Việt một lượt rồi dán ngược lại nhanh hơn.
Slug có dấu có ảnh hưởng SEO không?
Google đọc được URL có dấu, nhưng khi chia sẻ, đường dẫn thường hiện thành chuỗi mã hoá phần trăm dài và khó đọc. Slug không dấu ngắn gọn, dễ gõ lại, dễ nhận ra từ khoá. Hầu hết site tiếng Việt dùng slug không dấu, và đổi slug sau khi bài đã lên sẽ cần chuyển hướng 301.
Xoá dấu tiếng Việt có giữ nguyên chữ hoa không?
Có. Ở chế độ thường, “Đếm” thành “Dem” với D hoa, “Hà Nội” thành “Ha Noi”. Chỉ khi bật tạo slug, công cụ mới chuyển toàn bộ về chữ thường. Nếu cần chữ không dấu viết hoa hết, dùng chuyển chữ hoa thường trước hoặc sau đều cho cùng kết quả.
Tại sao tin nhắn đã bỏ dấu vẫn bị tính như tin có dấu?
Vì còn ký tự nằm ngoài bảng GSM-7: chữ Đ khi tắt đổi đ/Đ, dấu ngoặc kép cong, gạch ngang dài, dấu ba chấm liền hoặc emoji. Chỉ một ký tự như vậy là cả tin quay về UCS-2. Băng SMS của công cụ ẩn đi trong trường hợp này; đếm ký tự SMS sẽ liệt kê đúng ký tự gây lỗi.
Tên file ảnh nên đặt có dấu hay không dấu?
Nên không dấu, viết thường, nối bằng gạch ngang, ví dụ “dem-tu-online-mien-phi.png”. Tên có dấu dễ lỗi khi tải lên hosting, nén thành file zip hay chuyển giữa macOS và Windows. Bật tạo slug rồi thêm phần đuôi .png hoặc .jpg là có tên file dùng được ngay.
Căn cứ và nguồn
- String.prototype.normalize() — MDN: tách chữ thành chữ gốc và dấu tổ hợp (NFD), ghép lại dạng dựng sẵn (NFC).
- Unicode Standard Annex #15, Unicode Normalization Forms: định nghĩa phân tách chính tắc, cơ sở của bước bỏ dấu.
- What is the SMS character limit? — Twilio: 160 ký tự với GSM-7 và 70 ký tự với UCS-2.
- TCVN 6909:2001, bộ mã tiếng Việt Unicode dạng dựng sẵn.
Kiểm tra: 16/09/2026. Xoá dấu tiếng Việt làm mất thông tin thanh điệu; chỉ nên dùng cho slug, tên file, mã và tin nhắn cần tiết kiệm ký tự.