Trước hết hãy kiểm tra bảng mã
Ở góc phải dưới thanh trạng thái, Notepad++ cho biết hiện đang đọc file thế nào, như UTF-8, UTF-8-BOM hay ANSI. Menu Encoding (Mã hóa) có hai loại mục hay bị nhầm lẫn:
- ANSI, UTF-8, UTF-8-BOM (phần trên của menu): Notepad++ đọc lại các byte hiện có mà không đổi file – chỉ là cách hiển thị.
- Convert to ANSI, Convert to UTF-8 … (phần dưới của menu): Notepad++ ghi các ký tự theo bảng mã mới. Khi lưu, file bị thay đổi.
Trường hợp 1: hiện á thay cho á
File lưu theo UTF-8 nhưng Notepad++ đọc như ANSI. Chọn Encoding rồi UTF-8, ký tự sẽ hiện đúng ngay. Đừng chuyển đổi: «Convert to UTF-8» sẽ lưu luôn đống ký tự lỗi á thành ký tự thật.
Trường hợp 2: ô vuông hoặc chữ lạ thay cho tiếng Việt
File lưu theo ANSI (Windows-1258 hoặc Windows-1252) nhưng đang đọc như UTF-8. Trước hết chọn Encoding, Character sets, Vietnamese, Windows-1258 để ký tự hiện đúng, rồi chọn Convert to UTF-8. Sau khi lưu, file là UTF-8.
Trường hợp 3: chữ vỡ nằm sẵn trong file
Nếu chọn UTF-8 mà Notepad++ vẫn hiện á, thì chữ hỏng đã được lưu rồi. Khi đó không mục nào trong menu giúp được một cách đáng tin – nhất là khi dòng đúng và dòng sai trộn lẫn hoặc chữ bị mã hóa hai lần. Hãy thả file vào Mojibuster ở trên: nó chỉ sửa những chỗ hỏng và cho bạn xem từng thay đổi. Với chữ gõ bằng font cũ (TCVN3, VNI), dùng sửa lỗi font tiếng Việt.
Trước
B¶n dÞch ®· kiÓm tra: ViÖt Nam, ngêi, ®êng, Hµ Néi – tÊt c¶ ®Òu ®óng.
Sau
Bản dịch đã kiểm tra: Việt Nam, người, đường, Hà Nội – tất cả đều đúng.
Luôn tạo file mới bằng UTF-8
Trong Settings, Preferences, New Document, đặt bảng mã cho file mới là UTF-8. Với file cần mở bằng Excel thì UTF-8-BOM tốt hơn – xem thêm lỗi font Excel và CSV. Script cho Windows PowerShell 5.1 cũng cần BOM, xem PowerShell.
Câu hỏi thường gặp
UTF-8 và UTF-8-BOM khác nhau thế nào?
Cả hai lưu ký tự giống nhau. UTF-8-BOM ghi thêm ba byte vô hình ở đầu file, nhờ đó Excel và các chương trình cũ nhận ra UTF-8.
Vì sao Notepad++ đôi khi nhận diện sai bảng mã?
File không có BOM không chứa thông tin về bảng mã, nên Notepad++ phải đoán. Với file ngắn và ít chữ có dấu, nó sai nhiều hơn.
Có chuyển nhiều file cùng lúc được không?
Trong Notepad++ chỉ làm được bằng macro hoặc plugin. Với Mojibuster là từng file một – mỗi file xong trong vài giây.