Vì sao mở file Word trên Linux bị vỡ chữ
Có hai kiểu lỗi trông giống nhau nhưng cách sửa khác hẳn:
| Bạn thấy | Nguyên nhân | Cách sửa |
|---|---|---|
| Chữ đúng, có dấu, nhưng dòng dài ngắn khác, trang nhảy, bảng lệch | Máy không có font gốc (Times New Roman, Calibri…), LibreOffice thay bằng font khác kích thước | Cài font, mục bên dưới |
| Ký tự lạ: "Céng hßa x· héi chñ nghÜa" | Văn bản gõ bằng font TCVN3 (ABC) như .VnTime, .VnArial | Đổi sang Unicode, mục công cụ đổi bảng mã |
| Ký tự lạ: "Coäng hoøa xaõ hoäi chuû nghóa" | Văn bản gõ bằng font VNI (VNI-Times, VNI-Helve) | Như trên, chọn VNI |
| Ô vuông, dấu hỏi thay chữ | Font đang dùng thiếu chữ tiếng Việt | Đổi sang font Unicode đủ dấu: Noto Sans, DejaVu, Liberation |
Cài Times New Roman, Arial và font thay Calibri
Linux Mint và Ubuntu không cài sẵn font của Microsoft vì giấy phép. Gói ttf-mscorefonts-installer trong kho chính thức sẽ tải bộ "Core fonts for the Web" mà Microsoft từng cho tải miễn phí: Times New Roman, Arial, Courier New, Verdana, Georgia, Trebuchet MS, Comic Sans MS, Impact, Webdings. Chạy:
sudo add-apt-repository multiverse
sudo apt update
sudo apt install ttf-mscorefonts-installer fonts-crosextra-carlito fonts-crosextra-caladea
fc-cache -fGiữa chừng hiện màn hình giấy phép màu xanh/tím: bấm Tab để chọn <Ok>, Enter, rồi chọn <Yes>. Lỡ bấm từ chối thì chạy lại:
sudo apt install --reinstall ttf-mscorefonts-installerKiểm đã có font chưa:
fc-list | grep -iE "times new roman|arial|carlito"| Font trong văn bản Word | Trên Linux dùng | Gói |
|---|---|---|
| Times New Roman, Arial, Courier New | Đúng font đó (bản 2.x cũ) | ttf-mscorefonts-installer |
| Calibri (mặc định Word 2007–2019) | Carlito: cùng độ rộng chữ, dòng không nhảy | fonts-crosextra-carlito |
| Cambria | Caladea | fonts-crosextra-caladea |
| Times New Roman, Arial khi không cài font Microsoft | Liberation Serif, Liberation Sans (cài sẵn, cùng độ rộng, đủ dấu) | fonts-liberation2 |
| Aptos (mặc định Microsoft 365 từ 2024) | Chưa có font cùng độ rộng trong kho. Đổi font văn bản hoặc xuất PDF trước khi gửi | — |
LibreOffice tự thay Calibri bằng Carlito, Cambria bằng Caladea khi máy có hai font này, bạn không phải chỉnh gì.
Cài font .ttf, .otf tải về
Bấm đúp file font, bấm Install. Hoặc chép vào thư mục font của mình (chỉ tài khoản đó dùng):
mkdir -p ~/.local/share/fonts
cp ~/Downloads/*.ttf ~/.local/share/fonts/
fc-cache -fCho mọi tài khoản trên máy: chép vào /usr/local/share/fonts/ bằng sudo. Font tiếng Việt miễn phí đẹp, đủ dấu có trên Google Fonts: Be Vietnam Pro, Noto Serif, Lora, Roboto… (chọn font có ô Vietnamese).
Font cũ .VnTime, VNI-Times là gì
Trước khi Unicode phổ biến (khoảng trước 2005), văn bản tiếng Việt ở Việt Nam hay gõ bằng hai bảng mã 8 bit:
- TCVN3 (ABC): font tên bắt đầu bằng dấu chấm, như .VnTime, .VnArial; font chữ hoa có chữ H ở cuối (.VnTimeH). Văn bản hành chính cũ dùng rất nhiều.
- VNI-Windows: font VNI-Times, VNI-Helve…, phổ biến ở phía Nam.
Chữ trong file thực chất là ký tự Latin bình thường, font cũ "vẽ" chúng thành chữ có dấu. Máy không có font đó thì hiện nguyên ký tự gốc: "Céng hßa". Có font thì trông đúng, nhưng tìm kiếm, sắp xếp, gửi email, đưa lên web vẫn sai. Cách bền nhất là đổi hẳn sang Unicode.
Công cụ đổi TCVN3, VNI sang Unicode
Dán đoạn văn bản (ký tự lạ) vào ô trên, kết quả Unicode hiện ở ô dưới. Chạy ngay trên máy bạn, văn bản không gửi lên máy chủ.
Bảng đối chiếu lấy từ bảng mã của Unikey (mã nguồn mở, bản trong fcitx5-unikey). Công cụ đổi chữ thuần, không giữ in đậm, nghiêng, bảng biểu.
Đổi cả file Word giữ định dạng
Công cụ trên đổi chữ thuần. Với file dài cần giữ nguyên bảng, in đậm, chưa có công cụ trên Linux mà chúng tôi đã thử và thấy ổn. Các cách thực tế:
- Văn bản ngắn, ít định dạng: mở trong LibreOffice, chép từng đoạn qua công cụ trên rồi dán lại, chọn font Unicode (Times New Roman, Liberation Serif).
- Văn bản dài, nhiều bảng: nhờ một máy Windows có Unikey: mở file trong Word, chọn hết, chép, mở Unikey Toolkit (Ctrl+Shift+F6), chọn nguồn TCVN3 hoặc VNI, đích Unicode, bấm Chuyển mã, dán lại vào Word. Unikey chuyển cả nội dung có định dạng trong bộ nhớ tạm.
- Chỉ cần xem, in đúng như cũ: cài font .VnTime hoặc VNI vào máy như mục trên. Chỉ lấy font từ nguồn bạn tin cậy (máy cũ của cơ quan), không tải ở trang lạ có kèm file chạy.
Tên file tiếng Việt bị lỗi khi giải nén
File .zip nén trên Windows cũ đôi khi ra tên file kiểu "Báo cáo". Đó là lỗi bảng mã tên file, không phải font. Giải nén bằng lệnh unzip kèm bảng mã, hoặc dùng 7-Zip / PeaZip. Tên file đã giải nén sai có thể đổi lại bằng convmv (có trong kho), chạy thử không có --notest để xem trước.
Nguồn đã kiểm
- Gói ttf-mscorefonts-installer (Ubuntu 24.04)
- Gói fonts-crosextra-carlito (Ubuntu 24.04)
- Microsoft Typography — Arial — lịch sử phiên bản, bảng mã
- Bảng mã Unikey trong fcitx5-unikey — nguồn bảng đối chiếu TCVN3, VNI
- Debian Wiki — Fonts
Thông tin phần mềm, phiên bản, hỗ trợ của từng hãng có thể đổi sau ngày soát. Thấy sai, bạn báo cho Dorabot qua trang Về chúng tôi.