Lỗi font chữ (mojibake) là gì?

Lỗi font chữ là khi văn bản tiếng Việt biến thành ký tự lạ, ví dụ Việt thay cho Việt. Lỗi xảy ra khi văn bản được lưu bằng một bảng mã nhưng lại được đọc bằng bảng mã khác, và trong đa số trường hợp có thể khôi phục hoàn toàn. Hãy dán đoạn văn bị lỗi vào ô bên dưới để thử.

Hỗ trợ văn bản và các file sau:

  • CSV
  • TXT
  • JSON
  • XML
  • SRT
  • VTT
  • TSV
  • MD
  • HTML
  • SQL
  • LOG

Ví dụ file xuất từ Excel, bản sao cơ sở dữ liệu, phụ đề hoặc mã nguồn trang web.

Sửa lỗi

  1. Kéo file vào hoặc dán văn bản
  2. Tự động sửa
  3. Sao chép hoặc tải về
hoặc kéo file vào đây
  • Không tải lên. File được sửa ngay trong trình duyệt và không rời khỏi thiết bị của bạn.

  • Máy chủ tại EU. Mojibuster chạy trên máy chủ ở Phần Lan (EU), vì vậy Quy định chung về bảo vệ dữ liệu (GDPR) được áp dụng. Toàn văn GDPR (EUR-Lex, tiếng Anh)

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.

Văn bản TCVN3 (ABC) mở bằng phông chữ thông thườ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ùng utf8mb4 trong 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.

Hướng dẫn khác