Bỏ qua menu, tới nội dung

NFD là gì? Dạng tổ hợp tách chữ và dấu trong tiếng Việt

NFD là viết tắt của Normalization Form D, dạng chuẩn hoá tổ hợp: mỗi chữ có dấu được tách thành chữ nền cộng các dấu rời, rồi các dấu được xếp theo thứ tự cố định. Chữ “ệ” ở dạng NFD gồm ba mã — chữ “e”, dấu nặng, dấu mũ — nhưng màn hình vẫn hiện đúng một ký tự.

Một chữ NFD gồm những gì

Số mã tăng lên, số ký tự người đọc thấy thì không đổi.

ChữThành phần khi ở NFDCode pointByte UTF-8
ệe + dấu nặng + dấu mũ35
ấa + dấu mũ + dấu sắc35
ơo + dấu móc23

Dạng dựng sẵn NFC gom các mã ấy lại còn một. Vì thế cùng một câu ở hai dạng cho cùng số grapheme nhưng khác số mã và khác số byte — chỗ này hay làm lệch kết quả khi một hệ thống đếm bằng độ dài chuỗi thô.

NFD có ích khi bỏ dấu tiếng Việt

Tách chữ khỏi dấu chính là bước đầu của thuật toán xoá dấu.

Công cụ chuyển văn bản sang NFD, xoá mọi ký tự thuộc nhóm dấu tổ hợp rồi đổi riêng “đ” thành “d”, vì “đ” không tách được thành chữ nền cộng dấu. Kết quả là chuỗi chỉ còn chữ Latinh cơ bản, hợp với slug URL hoặc với tin nhắn cần bảng mã GSM-7. Người viết nội dung cho hệ thống gửi tin tự động dùng đúng đường này để hạ số tin phải trả.

Công cụ làm việc với văn bản NFD

Ba công cụ và một trang thuật ngữ sau chạm tới dạng tổ hợp.