Từ “mojibake” nghĩa là gì?
Trong tiếng Anh, chữ bị hiển thị sai được gọi là mojibake, mượn từ tiếng Nhật 文字化け, nghĩa là “chữ bị biến dạng”. Ở Việt Nam, người ta thường gọi là “lỗi font” hoặc “lỗi font chữ”, dù nguyên nhân thật sự thường nằm ở bảng mã chứ không phải ở phông chữ.
Vì sao chữ bị lỗi?
Máy tính lưu chữ dưới dạng các byte, và bảng mã quy định byte nào ứng với chữ nào. Trong UTF-8, chữ ệ được lưu bằng ba byte E1 BB 87. Một chương trình đọc các byte này theo Windows-1252 sẽ hiển thị mỗi byte thành một ký tự riêng: ệ.
Trước khi có Unicode, tiếng Việt còn được gõ bằng các bảng mã riêng như TCVN3 (ABC) và VNI, đi kèm phông chữ riêng như .VnTime hay VNI-Times. Mở những tài liệu này bằng phông chữ thông thường cũng làm chữ bị lỗi. Ở cả hai trường hợp, dữ liệu vẫn còn nguyên, chỉ bị đọc sai – vì vậy Mojibuster có thể chuyển lại thành chữ đúng.
Lỗi font
Lçi font ch÷ ®· ®îc söa xong
Unicode
Lỗi font chữ đã được sửa xong
Các dạng lỗi thường gặp
Việt: văn bản UTF-8 bị đọc theo Windows-1252, hay gặp khi mở file CSV bằng Excel (lỗi font Excel CSV).- Chữ có dấu biến thành ký hiệu lạ trong tài liệu cũ gõ bằng TCVN3 (ABC) hoặc VNI (sửa lỗi font tiếng Việt).
?hoặc�: ký tự không chuyển đổi được đã bị thay thế, thông tin gốc đã mất.
Nguyên nhân thường gặp
- Nhấp đúp mở file CSV UTF-8 không có BOM trong Excel.
- Mở tài liệu cũ gõ bằng TCVN3 hoặc VNI trên máy không có phông chữ tương ứng.
- Trang web hoặc email khai báo sai bảng mã (charset).
- Văn bản đã bị lỗi lại được chuyển đổi thêm một lần nữa.
Có sửa được mọi lỗi font không?
Hầu hết là được, miễn là các byte vẫn còn. Nếu chữ đã bị thay bằng ? hoặc � khi lưu hay gửi đi, thông tin gốc đã mất và không thể khôi phục. Mojibuster sửa mọi chỗ có thể sửa và cho biết có bao nhiêu chỗ không khôi phục được.
Cách phòng tránh lỗi font
- Soạn thảo bằng Unicode và lưu file dưới dạng UTF-8; file CSV dùng cho Excel nên lưu UTF-8 có BOM.
- Khai báo
<meta charset="utf-8">trong HTML, dùngutf8mb4trong MySQL và MariaDB. - Khi nhập dữ liệu, chọn bảng mã rõ ràng thay vì để chương trình tự đoán.
- Chỉ chuyển đổi bảng mã một lần, tại ranh giới giữa hai hệ thống.
Câu hỏi thường gặp
Lỗi font chữ có sửa được không?
Có. Phần lớn lỗi font chỉ là văn bản bị đọc sai bảng mã. Dán văn bản hoặc kéo file vào ô phía trên, Mojibuster sẽ tự nhận diện và sửa.
File của tôi bị hỏng hay nhiễm virus?
Không. Lỗi font là vấn đề hiển thị, không phải virus, và thường dữ liệu vẫn còn nguyên.
Lỗi font và ký tự � khác nhau thế nào?
Lỗi như Việt vẫn giữ nguyên các byte gốc nên sửa được. Ký tự � nghĩa là chương trình không đọc được một byte và đã thay thế nó, chữ gốc đã mất.
Văn bản có bị tải lên máy chủ không?
Không. Mojibuster sửa văn bản ngay trong trình duyệt của bạn, không gửi đi và không lưu lại.