Gõ tiếng Việt: Telex, VNI, VIQR, bảng mã TCVN3 và Unicode dựng sẵn, tổ hợp
Gõ tiếng Việt trên máy tính, điện thoại: bảng so sánh Telex, VNI, VIQR; bảng mã cũ TCVN3, VNI-Windows; Unicode dựng sẵn và tổ hợp; cách sửa lỗi font, lỗi dấu.
Nội dung bài
Tiếng Việt có 12 chữ cái nguyên âm (a, ă, â, e, ê, i, y, o, ô, ơ, u, ư), cộng 5 dấu thanh, nên một chữ như ữ hay ệ mang tới hai dấu. Bàn phím máy tính thiết kế cho tiếng Anh không có sẵn những chữ này. Để gõ tiếng Việt, cần hai thứ tách biệt: một kiểu gõ (cách bấm phím để ra chữ có dấu) và một bảng mã (cách máy tính lưu chữ đó thành dữ liệu). Nhầm hai khái niệm này là nguyên nhân của phần lớn lỗi "gõ không ra dấu" hay "chữ bị vỡ".
Ba kiểu gõ phổ biến: Telex, VNI, VIQR
Kiểu gõ là quy ước "bấm phím gì ra dấu gì". Bộ gõ (như các bộ gõ tiếng Việt trên Windows, bàn phím tiếng Việt có sẵn trên macOS, iOS, Android) đọc chuỗi phím và thay bằng chữ có dấu.
| Muốn có | Telex | VNI | VIQR |
|---|---|---|---|
| dấu sắc (á) | as | a1 | a' |
| dấu huyền (à) | af | a2 | a` |
| dấu hỏi (ả) | ar | a3 | a? |
| dấu ngã (ã) | ax | a4 | a~ |
| dấu nặng (ạ) | aj | a5 | a. |
| â, ê, ô | aa, ee, oo | a6, e6, o6 | a^, e^, o^ |
| ơ, ư | ow, uw (hoặc w) | o7, u7 | o+, u+ |
| ă | aw | a8 | a( |
| đ | dd | d9 | dd |
| xoá dấu | z | 0 | — |
Ví dụ gõ chữ người: Telex là nguwowif (hoặc nguwowfi, đa số bộ gõ cho đặt phím dấu ở cuối từ), VNI là ngu7o7i2. Chữ đường: Telex dduwowngf, VNI d9u7o7ng2.
Nên chọn kiểu nào?
- Telex: tay không rời hàng phím chữ, gõ nhanh; là kiểu phổ biến nhất hiện nay và là kiểu mặc định của nhiều bàn phím điện thoại. Nhược điểm: gõ từ tiếng Anh có chữ w, s, f, r, x, j dễ bị biến thành dấu — gõ "Windows" có thể ra "Ưindows". Nhiều bộ gõ có tuỳ chọn tự khôi phục từ không phải tiếng Việt.
- VNI: dùng phím số, không đụng chữ cái, nên ít nhầm khi gõ lẫn tiếng Anh; nhưng phải với tay lên hàng số, chậm hơn khi gõ nhiều.
- VIQR: dùng dấu câu tượng hình (' ` ? ~ .), ra đời cho môi trường chỉ có chữ ASCII như thư điện tử, diễn đàn thời đầu Internet. Nay chủ yếu còn dùng khi muốn viết tiếng Việt có dấu trong môi trường không gõ được dấu.
Bảng mã: chữ được lưu thế nào
Gõ xong, chữ ệ phải được lưu thành những con số. Cách quy đổi chữ thành số gọi là bảng mã. Trước khi Unicode phổ biến, Việt Nam có nhiều bảng mã 8 bit cạnh tranh nhau:
| Bảng mã | Phông chữ đi kèm (ví dụ) | Đặc điểm |
|---|---|---|
| TCVN3 (còn gọi ABC) | .VnTime, .VnArial | Chữ hoa có dấu nằm ở phông riêng (.VnTimeH); từng rất phổ biến trong văn bản hành chính |
| VNI-Windows | VNI-Times, VNI-Helve | Một chữ có dấu có thể tạo từ hai ký tự |
| VISCII, VPS | Phông riêng của từng bảng | Ít gặp hơn |
| Unicode | Times New Roman, Arial và hầu hết phông hiện đại | Chuẩn quốc tế, mọi ngôn ngữ trong một bảng |
Vấn đề của bảng mã 8 bit: dữ liệu chỉ đọc đúng khi dùng đúng phông. Một văn bản TCVN3 mở bằng phông Unicode sẽ ra chuỗi ký tự lạ, chữ tiếng Việt có thể hiện thành những ký hiệu như "tiÕng ViÖt". Đây là "lỗi font" quen thuộc khi mở hồ sơ cũ.
Unicode dựng sẵn và Unicode tổ hợp
Ngay trong Unicode, một chữ có dấu cũng có thể lưu theo hai cách:
- Dựng sẵn (precomposed, chuẩn hoá NFC): mỗi chữ có dấu là một ký tự riêng. Chữ ệ là một ký tự duy nhất.
- Tổ hợp (decomposed, NFD): chữ gốc cộng các dấu kết hợp. Chữ ệ = e + dấu mũ + dấu nặng, tức ba ký tự.
Trên màn hình hai cách trông giống hệt nhau, nhưng máy tính coi là hai chuỗi khác nhau. Hệ quả thực tế: tìm kiếm không ra kết quả dù chữ "nhìn thấy rõ ràng", sắp xếp sai, đếm số ký tự sai, tên tệp gõ trên máy này không khớp máy kia. Khuyến nghị chung là dùng Unicode dựng sẵn — đây là lựa chọn mặc định của hầu hết bộ gõ tiếng Việt hiện nay. Khi xử lý dữ liệu, lập trình viên nên chuẩn hoá chuỗi về NFC trước khi so sánh.
Lỗi thường gặp và cách sửa
| Hiện tượng | Nguyên nhân thường gặp | Cách xử lý |
|---|---|---|
| Gõ ra "aa", "as" thay vì â, á | Bộ gõ chưa bật hoặc đang ở chế độ tiếng Anh | Bật bộ gõ, chọn đúng kiểu gõ |
| Chữ có dấu thành ô vuông hoặc ký hiệu lạ | Văn bản dùng bảng mã cũ (TCVN3, VNI) nhưng mở bằng phông Unicode | Dùng công cụ chuyển mã để chuyển sang Unicode |
| Chữ hiện thành dạng "Việt" | Dữ liệu UTF-8 bị đọc nhầm thành bảng mã Latin-1 | Mở lại tệp với mã hoá UTF-8 |
| Dấu nhảy lung tung, gõ "hoà" ra "hoaf" | Bộ gõ trên trình duyệt xung đột với tính năng tự sửa, gợi ý từ | Tắt tự sửa của ứng dụng, thử chế độ gõ khác của bộ gõ |
| Tìm kiếm không thấy chữ có dấu | Lẫn Unicode dựng sẵn và tổ hợp | Chuẩn hoá văn bản về dựng sẵn |
Phông chữ: Unicode chưa đủ, phông phải có chữ Việt
Unicode chỉ quy định mã số của chữ; hình dạng chữ do phông quyết định. Không phải phông Unicode nào cũng vẽ đủ các chữ có dấu tiếng Việt. Khi phông thiếu, hệ điều hành mượn chữ từ phông khác, và người đọc thấy một từ mà vài chữ cái "lệch" kiểu, dấu đặt sai cao độ hoặc chồng lên nhau. Khi chọn phông cho văn bản, bài trình chiếu hay trang web, nên kiểm tra phông có hỗ trợ tiếng Việt: gõ thử câu có đủ dấu chồng như "Những người Việt ở Huế ưa uống trà" và xem chữ ữ, ệ, ế, ố hiển thị có đều không. Với web, nhiều thư viện phông cho chọn riêng bộ ký tự tiếng Việt.
Đặt dấu kiểu cũ hay kiểu mới
Bộ gõ thường có tuỳ chọn vị trí dấu thanh: kiểu cũ đặt dấu ở nguyên âm đầu trong các vần oa, oe, uy (hòa, thúy), kiểu mới đặt ở nguyên âm sau (hoà, thuý). Cả hai đều đang được dùng; điều quan trọng là thống nhất trong cùng một văn bản, vì hoà và hòa là hai chuỗi ký tự khác nhau với máy tìm kiếm. Quy tắc chi tiết ở bài Vị trí đặt dấu thanh.
Mẹo gõ nhanh và đúng
- Gõ dấu cuối từ: hầu hết bộ gõ cho phép gõ hết chữ rồi mới gõ phím dấu, bộ gõ tự đặt dấu đúng vị trí. Gõ
truongwfhaytruwowngfđều có thể ra trường tuỳ bộ gõ. - Bật kiểm tra chính tả tiếng Việt nếu bộ gõ có, để chặn những tổ hợp không có trong tiếng Việt.
- Dùng gõ tắt cho cụm dài lặp lại (tên cơ quan, địa chỉ).
- Văn bản gửi đi phải dùng Unicode: người nhận không cần cài phông đặc biệt.
- Điện thoại: bàn phím tiếng Việt có sẵn hỗ trợ cả kiểu Telex, VNI và kiểu chọn dấu bằng cách giữ phím; nên tắt gợi ý tự sửa khi gõ tên riêng.
Chữ Quốc ngữ ra đời từ thế kỷ 17 cho bút lông ngỗng và máy in chì (xem Lịch sử chữ Quốc ngữ); việc đưa hệ dấu dày đặc ấy vào máy tính là một chặng đường riêng, và Unicode dựng sẵn là điểm dừng ổn định nhất hiện nay.
Hỏi đáp nhanh
Telex và VNI khác nhau thế nào?
Telex dùng chữ cái để gõ dấu, ví dụ s là sắc, f là huyền, aa là â; VNI dùng phím số, ví dụ 1 là sắc, 2 là huyền, 6 là dấu mũ. Telex nhanh hơn vì tay không rời hàng phím chữ, VNI ít nhầm khi gõ lẫn tiếng Anh.
Vì sao mở văn bản cũ bị lỗi font?
Văn bản cũ thường dùng bảng mã TCVN3 hoặc VNI-Windows, chỉ đọc đúng với phông riêng của bảng mã đó. Mở bằng phông Unicode sẽ ra ký tự lạ; cần dùng công cụ chuyển mã sang Unicode.
Unicode dựng sẵn và Unicode tổ hợp khác nhau ra sao?
Dựng sẵn lưu mỗi chữ có dấu thành một ký tự, tổ hợp lưu chữ gốc cộng các dấu riêng. Hiển thị giống nhau nhưng máy tính coi là chuỗi khác nhau, nên nên dùng dựng sẵn để tìm kiếm và sắp xếp đúng.
Nên dùng bảng mã nào để soạn văn bản?
Nên dùng Unicode, cụ thể là Unicode dựng sẵn. Đây là chuẩn quốc tế, đọc đúng trên mọi máy và mọi phông chữ hiện đại.
VIQR là gì?
VIQR là cách viết tiếng Việt bằng ký tự ASCII, dùng dấu câu thay dấu thanh như a' là á, a` là à, a? là ả. Nó ra đời cho thư điện tử và diễn đàn thời đầu Internet khi chưa gõ được chữ có dấu.