Skip to content

Chuyển mã (Encoding)

Chuyển đổi text giữa các bảng mã tiếng Việt — UnicodeTCVN3VNI-WindowsVIQR.

Ứng dụng: mở file Excel cũ (10-20 năm trước) dùng TCVN3 / VNI mà chữ hiển thị thành ký tự lạ → cần chuyển về Unicode để dùng được.

Mở dialog

DVD Addin → nhóm Văn bản và Số → split-button Chuyển mã (icon Aa).

Các bảng mã tiếng Việt

Unicode (TCVN 6909:2001)

Bảng mã chuẩn quốc tế, được Windows / Office / web hỗ trợ native từ 2000s. Mỗi ký tự tiếng Việt là 1 codepoint UTF-8/UTF-16.

Ví dụ: à = U+00E0, = U+1EA5.

Mọi file mới phải dùng Unicode. Đây là mặc định của Excel hiện đại.

TCVN3 (Bảng mã 8-bit cũ)

Bảng mã 8-bit phát triển trước Unicode. Mỗi ký tự nằm trong vùng 128-255.

Font kèm: .VnTime, .VnArial, .VnTimeH, .VnArialH (dấu chấm đầu — chú ý).

Nếu mở file TCVN3 mà KHÔNG đổi font → chữ hiện ngẫu nhiên: "haø noäi" hoặc "h¶ noíi".

VNI-Windows

Bảng mã của hãng Vietnam International Inc. (sản xuất font VNI). Dùng 2 byte cho mỗi ký tự có dấu.

Font kèm: VNI-Times, VNI-Arial, VNI-Helve.

Chữ TCVN3 và VNI KHÔNG tương thích chéo dù trông giống nhau (cùng dùng font 8-bit).

VIQR (Vietnamese Quoted-Readable)

Bảng mã ASCII-safe dùng cho email/IRC thời chưa có Unicode:

  • à = a
  • = a^'
  • = o+

Ít dùng từ 2010+. Một số file cũ vẫn còn.

Cách dùng

Bước 1 — Phát hiện bảng mã hiện tại

DVD Addin → menu Chuyển mãAuto-detect (nếu có).

Hoặc nhận biết bằng mắt:

  • Font cell là .VnTime, .VnArial, ... → TCVN3.
  • Font là VNI-Times, VNI-Helve, ... → VNI.
  • Chữ hiện ASCII có ký tự ^, +, ', ? xen kẽ → VIQR.
  • Font là Calibri, Arial, Times New Roman + chữ tiếng Việt đúng → đã Unicode.

Bước 2 — Chọn vùng cần đổi

Chọn 1 cell hoặc 1 vùng cell.

Bước 3 — Đổi mã

Dropdown menu Chuyển mã có các option:

LệnhÝ nghĩa
TCVN3 → UnicodeFile cũ font .VnTime chuyển về Unicode
VNI → UnicodeFile cũ font VNI-Times chuyển về Unicode
VIQR → UnicodeText email/IRC cũ chuyển về Unicode
Unicode → TCVN3(Hiếm dùng) export về font cũ
Unicode → VNI(Hiếm dùng)
Unicode → VIQR(Hiếm dùng)
Unicode dựng sẵn ↔ Unicode tổ hợpĐổi giữa NFC (1 codepoint/ký tự) ↔ NFD (codepoint base + dấu rời)

Bước 4 — Đổi font (nếu chuyển TỪ Unicode về TCVN3/VNI)

Sau khi chuyển sang TCVN3 → cần đổi font cell sang .VnTime / .VnArial.

Sau khi chuyển sang VNI → cần đổi sang VNI-Times / VNI-Helve.

Để đẹp hơn: nếu output là TCVN3 → đổi font trước đổi mã, hoặc dùng macro tự đổi font theo bảng mã.

NFC vs NFD (Unicode Normalization)

Một số file Mac/iOS dùng NFD (dấu rời): à = a + dấu huyền (2 codepoints). Windows/Office dùng NFC (dấu liền): à = à (1 codepoint).

Khi paste từ Mac sang Excel Windows → chữ hiện đúng nhưng tìm kiếm / so sánh fail.

→ Chạy Unicode tổ hợp → Unicode dựng sẵn để chuẩn hóa.

Khắc phục sự cố

Chữ vẫn lạ sau khi chuyển

  • Đảm bảo bạn chọn ĐÚNG hướng (TCVN3→Unicode chứ không phải Unicode→TCVN3).
  • Nếu chữ ban đầu là VNI mà bạn chuyển TCVN3→Unicode → vẫn lạ. Phải biết bảng mã gốc.

Một số ký tự bị bỏ

  • Trong bảng mã cũ KHÔNG có ký tự đó (vd: trong TCVN3 đôi khi bị thay bằng ô).
  • Mất mát nhỏ — chấp nhận hoặc sửa thủ công những chỗ lệch.

Đổi xong vẫn dùng font cũ

  • Cell có format font cứng → đổi font sang Unicode-compatible (Calibri / Arial / Times New Roman).
  • Hoặc trước khi đổi mã, đổi font về Unicode font trước → đổi mã sau.

License gating

Lệnh Chuyển mã hoàn toàn free — không cần license.

Liên quan

Released under DVDAddin License.