Vì sao dấu tiếng Việt bị tách khỏi chữ? Cách sửa lỗi Combining Marks
Giải thích lỗi dấu tiếng Việt bị tách, lệch hoặc chồng lên chữ do Unicode Combining Marks và hướng dẫn sửa trong Word, thiết kế, website.
Bạn nhập tiếng Việt nhưng dấu sắc, huyền, hỏi, ngã hoặc nặng lại nằm lệch sang một bên, tách khỏi chữ cái, chồng lên dấu mũ hoặc biến thành ô vuông. Trong một file khác, cùng đoạn văn vẫn hiển thị bình thường. Đây không chỉ là lỗi “font không hỗ trợ tiếng Việt” mà thường liên quan đến cách Unicode lưu ký tự: dùng chữ đã dựng sẵn hoặc ghép chữ cái với Combining Marks.
Lỗi này dễ xuất hiện khi sao chép nội dung giữa website, Word, PDF, phần mềm thiết kế và ứng dụng nhắn tin. Bài viết sẽ giải thích cơ chế, cách nhận biết và quy trình sửa an toàn. Phần cuối giới thiệu 5 font TH Việt hóa trên Fontdep để bạn kiểm tra hiển thị dấu bằng nội dung thực tế.
Combining Marks là gì?
Combining Marks là các ký tự dấu kết hợp trong Unicode. Thay vì lưu “ế” thành một ký tự duy nhất, hệ thống có thể lưu chữ “e”, dấu mũ và dấu sắc thành nhiều mã nối tiếp nhau. Khi font và bộ máy dựng chữ hoạt động đúng, các thành phần được xếp chồng để người đọc vẫn thấy một chữ hoàn chỉnh.
Cách lưu này hợp lệ và cần thiết cho nhiều ngôn ngữ. Vấn đề phát sinh khi phần mềm không chuẩn hóa chuỗi, font thiếu điểm neo cho dấu, bộ dựng chữ cũ hoặc quá trình sao chép làm thay đổi thứ tự các mã. Khi đó dấu có thể trôi khỏi thân chữ, chồng sai vị trí hoặc bị coi như một ký tự độc lập.

Unicode dựng sẵn và Unicode tổ hợp khác nhau thế nào?
Unicode dựng sẵn lưu một chữ tiếng Việt phổ biến bằng một mã hoàn chỉnh, chẳng hạn “á”. Unicode tổ hợp có thể lưu chữ “a” rồi thêm một mã dấu sắc. Hai chuỗi nhìn giống hệt nhau nhưng dữ liệu bên trong khác nhau. Trong thuật ngữ chuẩn hóa, dạng dựng sẵn thường gắn với NFC, còn dạng tách thành thành phần thường gặp ở NFD.
Công cụ tìm kiếm, cơ sở dữ liệu và phần mềm hiện đại thường xử lý được cả hai. Tuy nhiên, tìm kiếm chính xác, so sánh tên file, tạo slug, nhập liệu vào hệ thống cũ hoặc dùng font thiếu dấu neo vẫn có thể gây lỗi. Vì vậy, với nội dung tiếng Việt dùng trên nhiều nền tảng, chuẩn hóa về NFC thường là lựa chọn an toàn.
Dấu hiệu nhận biết lỗi Combining Marks
- Dấu thanh nằm quá xa bên trái hoặc bên phải ký tự.
- Dấu sắc, huyền chồng lên dấu mũ của â, ê hoặc ô.
- Xóa một lần chỉ mất dấu, xóa lần nữa mới mất chữ cái.
- Con trỏ phải di chuyển qua nhiều vị trí trong một chữ tưởng như duy nhất.
- Tìm kiếm một từ không ra kết quả dù mắt thường thấy từ đó trong văn bản.
- Đổi font thì lỗi biến mất hoặc xuất hiện trở lại.
- Tên file giống nhau nhưng hệ thống coi là hai tên khác nhau.
Nguyên nhân dấu tiếng Việt bị tách hoặc lệch
Font thiếu glyph hoặc điểm neo cho dấu
Một font có thể chứa chữ Latin cơ bản nhưng chưa hỗ trợ đầy đủ tiếng Việt. Font khác có đủ ký tự dựng sẵn nhưng xử lý chuỗi tổ hợp chưa tốt. Đặc biệt với font script, display hoặc font tự tạo, các điểm neo mark-to-base và mark-to-mark có thể thiếu, khiến dấu không biết phải bám vào vị trí nào.
Văn bản được chuẩn hóa ở dạng khác nhau
Nội dung lấy từ macOS, website, PDF hoặc công cụ nhập liệu có thể ở NFD, trong khi ứng dụng đích mong đợi NFC. Khi trộn hai dạng trong cùng tài liệu, có chữ hiển thị đúng và chữ khác lại lỗi dù chúng trông giống nhau.
Phần mềm hoặc bộ dựng chữ quá cũ
Các ứng dụng cũ có thể không hỗ trợ đầy đủ OpenType shaping. Việc xếp dấu phụ thuộc không chỉ vào file font mà còn vào trình dựng chữ của hệ điều hành và phần mềm. Vì vậy cùng một font có thể đẹp trong trình duyệt mới nhưng lệch trong ứng dụng cũ.

Sao chép từ PDF hoặc ảnh nhận dạng OCR
PDF có thể lưu chữ theo từng glyph rời hoặc không giữ đúng thứ tự mã Unicode. OCR cũng có thể nhận nhầm dấu thành ký tự độc lập. Đoạn văn sau khi dán vào Word hoặc Photoshop nhìn gần đúng nhưng tìm kiếm, xuống dòng và chỉnh sửa lại bất thường.
Chuyển đổi bảng mã không đúng
VNI, TCVN3 và Unicode có nguyên tắc mã hóa khác nhau. Nếu dùng công cụ chuyển mã sai nguồn hoặc sai đích, văn bản có thể vừa sai ký tự vừa sai cấu trúc dấu. Đừng cố sửa bằng cách đổi font liên tục trước khi xác định bảng mã ban đầu.
Cách kiểm tra nhanh trước khi sửa
- Sao chép một từ lỗi vào trình soạn thảo Unicode hiện đại và thử xóa từng lần.
- Đổi sang font hệ thống hỗ trợ tiếng Việt tốt để phân biệt lỗi dữ liệu với lỗi font.
- Gõ lại cùng từ bằng bộ gõ hiện tại rồi đặt cạnh từ đã sao chép.
- Thử tìm kiếm nguyên từ; nếu bản gõ mới được tìm thấy còn bản cũ không, hai chuỗi có thể khác chuẩn hóa.
- Lưu một bản sao tài liệu trước khi chuyển mã hoặc thay thế hàng loạt.
Cách sửa trong Microsoft Word
Đầu tiên hãy chọn đoạn lỗi và đổi sang một font Unicode phổ biến. Nếu chữ trở lại bình thường, font cũ chưa hỗ trợ đủ tiếng Việt hoặc xử lý dấu tổ hợp kém. Nếu lỗi vẫn còn, dán văn bản qua một trình soạn thảo văn bản thuần hỗ trợ Unicode, chuẩn hóa về NFC rồi đưa lại vào Word.
Với nội dung bắt nguồn từ VNI hoặc TCVN3, dùng công cụ chuyển mã và chọn đúng bảng mã nguồn. Không nên dùng Find and Replace để thay từng dấu vì một ký tự nhìn thấy có thể gồm nhiều mã. Sau khi sửa, kiểm tra các nhóm khó như ă, â, ê, ô, ơ, ư kết hợp với đủ năm dấu thanh.

Cách sửa trong Photoshop, Illustrator và phần mềm thiết kế
Hãy thử font Việt hóa khác trước để xác định lỗi. Tạo một text layer mới, gõ trực tiếp câu kiểm tra thay vì dán, rồi so sánh với layer cũ. Nếu bản gõ mới đúng, dữ liệu sao chép có vấn đề; nếu cả hai sai, font hoặc trình dựng chữ của phần mềm có thể là nguyên nhân.
Cập nhật phần mềm và bật trình dựng chữ phù hợp nếu ứng dụng có lựa chọn. Với file nhận từ khách hàng, giữ một bản text gốc, chuẩn hóa chuỗi bên ngoài rồi thay nội dung trong layer. Tránh convert sang outline quá sớm vì sau đó bạn không thể sửa lỗi Unicode bằng văn bản nữa.
Cách sửa trên website
Website nên khai báo UTF-8, lưu dữ liệu bằng Unicode và chuẩn hóa đầu vào trước khi tạo slug, tìm kiếm hoặc so sánh chuỗi. CSS không thể sửa cấu trúc mã bị sai; đổi line-height hay letter-spacing chỉ che triệu chứng và đôi khi làm lỗi nặng hơn.
Kiểm tra font web có đầy đủ glyph tiếng Việt và bảng định vị dấu. Nếu dùng font subset, phải giữ lại các ký tự cần thiết. Hãy thử cả chuỗi dựng sẵn và chuỗi tổ hợp trên Chrome, Edge, Firefox, Safari cũng như điện thoại thật. Khi có font fallback, kích thước và vị trí dấu có thể khác phần chữ chính.
Cách sửa văn bản lấy từ PDF
Nếu PDF cho phép chọn chữ nhưng dán ra sai, hãy thử xuất văn bản bằng một công cụ khác hoặc quay về file nguồn. Với tài liệu scan, chạy OCR tiếng Việt và soát lại thủ công. Không nên coi phần chữ nhìn đúng trong PDF là bằng chứng dữ liệu Unicode bên trong cũng đúng.
Sau khi trích xuất, chuẩn hóa về NFC, loại bỏ ký tự ẩn không cần thiết và kiểm tra từng đoạn. Các tên riêng, mã sản phẩm và tiêu đề cần được đối chiếu kỹ vì lỗi dấu có thể làm sai tìm kiếm hoặc liên kết.
5 font TH Việt hóa để kiểm tra dấu tiếng Việt
1. TH Joypor – phong cách Hangeul cá tính
TH Joypor có hình khối nổi bật, phù hợp để kiểm tra vị trí dấu trên các ký tự dày và cấu trúc khác thường. Hãy thử câu có “Ắ, ấ, ễ, ộ, ự” ở nhiều cỡ chữ.
2. TH Quadrien Script – nét uốn lượn
TH Quadrien Script giúp kiểm tra dấu trên font script có nét bay và độ nghiêng lớn. Khi dùng cho thiệp cưới, hãy xem dấu có va vào nét nối hoặc dòng phía trên hay không.
3. TH Newly Bridal – font cưới mềm mại
TH Newly Bridal phù hợp để thử tên riêng và lời mời tiếng Việt. Nên kiểm tra cả chữ hoa có dấu, khoảng cách dòng và các cặp ký tự nối liền trước khi xuất file in.
4. TH Geardive – display thể thao tương lai
TH Geardive có dáng mạnh, hợp poster thể thao và game. Đây là lựa chọn hữu ích để kiểm tra dấu trên chữ in hoa, tiêu đề ngắn và bố cục cần tương phản cao.
5. TH Belly & Park – condensed hiện đại
TH Belly & Park có tỷ lệ hẹp, phù hợp tiêu đề cần tiết kiệm chiều ngang. Hãy chú ý khoảng trống phía trên chữ hoa có dấu và tránh đặt line-height quá chật.
Bộ câu thử dấu nên dùng
Một câu thử tốt cần có chữ hoa, chữ thường, dấu kép và ký tự có phần đi xuống. Bạn có thể dùng: “Ắng sáng, tiếng Việt rõ ràng; Nguyễn, Trường, Phượng, Quốc, Hiếu”. Sau đó thử ở cỡ nhỏ, cỡ lớn, in đậm, in nghiêng và trên nhiều dòng.
Với font tiêu đề, kiểm tra thêm chuỗi toàn chữ hoa. Với font nội dung, thử một đoạn dài để xem dấu có gây nhảy line-height hay không. Luôn xuất thử PNG hoặc PDF và mở trên một thiết bị khác trước khi bàn giao.
Kết luận
Dấu tiếng Việt bị tách khỏi chữ thường xuất phát từ sự kết hợp giữa dữ liệu Unicode, khả năng của font và bộ dựng chữ trong phần mềm. Cách xử lý đúng là xác định lỗi nằm ở dữ liệu hay font, chuẩn hóa về NFC khi phù hợp, rồi kiểm tra bằng font Việt hóa và ứng dụng hiện đại.
Đừng chỉ kéo dấu về vị trí bằng tay hoặc tăng khoảng cách dòng để che lỗi. Một quy trình kiểm tra từ nguồn văn bản, bảng mã, font đến file xuất sẽ giúp thiết kế ổn định trên web, máy khác và bản in.
Admin / Phạm Sơn
Tác giả





