Lưu LoátWiki
Tìm
Máy chữ & lịch sử bộ gõ

Bộ gõ tiếng Việt thời DOS và Windows đầu tiên: VNI, Vietkey, TCVN3

Thời DOS và Windows đầu, gõ tiếng Việt cần bộ gõ chạy ngầm và phông theo bảng mã riêng: VNI, TCVN3, VISCII… Vì sao sinh ra loạn bảng mã và cách xử lý tài liệu cũ.

Bộ gõ tiếng Việt thời DOS và Windows đầu tiên: VNI, Vietkey, TCVN3

Thời DOS và Windows đầu tiên (cuối thập niên 1980 đến khoảng năm 2000), gõ tiếng Việt trên máy tính cần hai thứ đi cặp: một chương trình bộ gõ chạy ngầm để biến phím bấm thành chữ có dấu, và một bộ phông chữ theo một bảng mã riêng để chữ ấy hiện lên được. Có nhiều bộ gõ — VNI, VietRes, Vietkey, ABC và những chương trình ít tên tuổi hơn — mỗi bộ đi với bảng mã của nó. Hệ quả là thời kỳ "loạn bảng mã": văn bản gõ ở máy này mở ở máy khác thành ký tự lạ, cho tới khi cả nước dần chuyển về Unicode.

Vì sao máy tính không gõ được tiếng Việt ngay từ đầu

Máy tính cá nhân thời đầu dùng bảng mã ASCII: 128 ký tự gồm chữ Latin không dấu, chữ số, dấu câu và các mã điều khiển. Máy IBM PC dùng thêm 128 vị trí "mở rộng" (từ 128 đến 255) cho ký tự kẻ khung, ký hiệu và một số chữ có dấu của tiếng Tây Âu. Tổng cộng 256 ô — trong khi riêng chữ Việt có dấu đã cần 134 ký tự, chưa kể chữ đ, Đ và các chữ không dấu.

Không có chỗ trống cho tiếng Việt, người làm phần mềm phải mượn chỗ: lấy các ô ít dùng trong bảng 256 ký tự, gán cho chúng hình chữ Việt. Mỗi nhóm mượn một kiểu khác nhau — đó là gốc rễ của chuyện mỗi bảng mã một khác.

Thời DOS: thay hình chữ ngay trong card màn hình

Trên DOS, màn hình chế độ văn bản lấy hình dạng ký tự từ một bảng mẫu chữ trong card đồ hoạ. Các chương trình tiếng Việt thời ấy thường làm hai việc khi khởi động:

  1. Nạp bảng mẫu chữ mới vào card màn hình, thay hình của một số ký tự ít dùng bằng hình chữ Việt có dấu.
  2. Cài một chương trình thường trú (loại TSR — chạy rồi nằm lại trong bộ nhớ) để bắt phím bấm. Khi người dùng gõ "a" rồi một phím dấu, chương trình xoá chữ a và thay bằng mã của chữ á theo bảng mã của nó.

Máy in lại là chuyện khác: phải có phông tải xuống máy in hoặc in ở chế độ đồ hoạ thì mới ra dấu. Nhiều người dùng thời ấy còn nhớ cảnh màn hình hiện đúng mà bản in ra thì mất dấu.

Cũng thời DOS, nhiều người soạn văn bản bằng chương trình làm riêng cho tiếng Việt, có sẵn cả phông và cách gõ bên trong — trình soạn thảo BKED là một ví dụ được nhắc nhiều.

Thời Windows đầu: bộ gõ chạy ngầm và phông TrueType

Windows 3.x và Windows 95 dùng giao diện đồ hoạ, phông chữ là các tệp phông (nhất là TrueType) cài vào máy. Bộ gõ tiếng Việt chuyển sang dạng chương trình chạy ngầm, có biểu tượng nhỏ ở góc màn hình để bật tắt tiếng Việt. Đi kèm là một bộ phông theo bảng mã của bộ gõ đó.

Điểm mấu chốt: lúc ấy tên phông quyết định bảng mã. Gõ bằng bộ gõ theo bảng mã TCVN3 thì phải chọn phông có tên bắt đầu bằng ".Vn" (như .VnTime); gõ theo bảng mã VNI thì chọn phông tên bắt đầu bằng "VNI-" (như VNI-Times). Chọn nhầm phông là chữ hiện sai ngay. Lịch sử các phông .Vn được kể ở mục Phông chữ tiếng Việt.

Những bộ gõ và bảng mã của thời kỳ này

TênLoạiGhi chú
VNIBộ gõ + bảng mã + phông VNI-Phát triển ở Mỹ từ cuối thập niên 1980, phổ biến trong cộng đồng người Việt ở nước ngoài và nhiều nơi trong nước; kiểu gõ dùng phím số mang tên này
VietResBộ gõBộ gõ miễn phí phổ biến thập niên 1990, hỗ trợ nhiều bảng mã
VietkeyBộ gõGắn với tên tác giả Đặng Minh Tuấn; bản Vietkey 2000 được dùng rộng rãi ở cơ quan, trường học
ABC và bảng mã TCVN3Bảng mã + phông .VnDựa trên TCVN 5712:1993, bảng mã có tên gọi VN3; người dùng quen gọi là "TCVN3" hay "ABC"
VISCIIBảng mãDo nhóm Viet-Std đề xuất đầu thập niên 1990, dùng nhiều trong giới tin học người Việt ở nước ngoài
VIQRQuy ước viết bằng ASCIICông bố thành RFC 1456 năm 1993, dùng cho thư điện tử và nhóm tin
VPSBảng mãMột bảng mã khác cũng được dùng thời ấy, ít phổ biến hơn

Năm ra đời chính xác và người làm của một số bộ gõ được ghi lệch nhau giữa các nguồn, nên bảng chỉ ghi những gì có cơ sở chắc chắn. Chi tiết kỹ thuật từng bảng mã có ở mục Bảng mã & Unicode.

"Loạn bảng mã": chuyện hằng ngày của văn phòng thập niên 1990

Hãy hình dung: phòng kế toán gõ báo cáo bằng VNI, phòng hành chính gõ bằng TCVN3, một đối tác gửi tệp gõ bằng VISCII. Ba tệp gộp vào một báo cáo chung là ba kiểu chữ lạ. Những tình huống quen thuộc:

  • Mở tệp thấy toàn ký tự lạ vì máy không có phông đúng bảng mã.
  • Gửi thư điện tử bị mất dấu vì hệ thống thư chỉ giữ ký tự ASCII; người ta phải gửi kèm tệp đính kèm hoặc viết theo VIQR.
  • Sắp xếp theo ABC sai vì thứ tự mã trong bảng mã không theo thứ tự chữ cái tiếng Việt.
  • Chép chữ từ Word sang chương trình khác (bảng tính, phần mềm kế toán) bị vỡ vì chương trình kia không dùng cùng phông.
  • Mang tệp đi in ở tiệm phải mang theo cả phông, nếu không máy ở tiệm in ra chữ lạ.

Các chương trình chuyển mã ra đời để đổi văn bản từ bảng mã này sang bảng mã khác. Đến nay, công cụ chuyển mã tích hợp trong các bộ gõ vẫn được dùng để cứu tài liệu cũ.

Vì sao một chuẩn quốc gia chưa đủ giải quyết

Năm 1993, Việt Nam ban hành TCVN 5712:1993 cho bảng mã 8 bit. Nhưng chuẩn này có nhiều biến thể (VN1, VN2, VN3), và trong khi đó các bộ gõ, phông chữ VNI hay VISCII đã có chỗ đứng vững. Bảng mã 8 bit nào cũng có cùng giới hạn: 256 ô không đủ chỗ thoải mái cho cả chữ Việt hoa lẫn thường cùng các ký tự khác, nên mỗi bảng mã phải hy sinh một thứ — có bảng mã dùng phông riêng cho chữ hoa, có bảng mã chiếm cả những ô vốn dành cho mã điều khiển.

Lời giải thật sự chỉ đến khi có Unicode — bộ mã đủ chỗ cho mọi chữ viết trên thế giới, mỗi chữ Việt có dấu một vị trí riêng, không ai phải mượn chỗ của ai. Chặng đường từ nhiều bảng mã về một chuẩn Unicode TCVN 6909:2001 được kể ở bài riêng trong mục này.

Góc nhìn hôm nay: gặp lại di sản thời DOS – Windows đầu

Thời ấy đã qua, nhưng di sản còn rất nhiều trong kho tài liệu của cơ quan, trường học, gia đình:

  • Thấy phông .VnTime, .VnArial trong tệp → văn bản dùng bảng mã TCVN3.
  • Thấy phông VNI-Times, VNI-Helve → bảng mã VNI.
  • Chữ hiện thành ký tự lạ → đừng gõ đè sửa tay; dùng công cụ chuyển mã trong bộ gõ để đổi sang Unicode rồi chọn phông Unicode như Times New Roman.
  • Lưu một bản Unicode sau khi chuyển, giữ nguyên bản gốc riêng để đối chiếu khi cần.

Cách nhận biết một tài liệu cũ đang dùng bảng mã nào có bài hướng dẫn riêng ở mục Bảng mã & Unicode. Nếu đang giữ đĩa mềm, đĩa CD cũ của gia đình hay cơ quan, hãy chép dữ liệu ra sớm: ổ đĩa mềm gần như không còn, và đĩa càng để lâu càng khó đọc.

Câu hỏi thường gặp

Thời DOS gõ tiếng Việt bằng cách nào?

Người dùng chạy một chương trình thường trú bắt phím bấm, đồng thời nạp bảng mẫu chữ mới vào card màn hình để thay hình một số ký tự ít dùng bằng chữ Việt có dấu. Cũng có những trình soạn thảo làm riêng cho tiếng Việt, có sẵn phông và cách gõ.

Vì sao thời trước có nhiều bảng mã tiếng Việt?

Vì bảng mã 8 bit chỉ có 256 ô, không có chỗ dành sẵn cho chữ Việt. Mỗi nhóm làm phần mềm tự chọn những ô ít dùng để gán chữ Việt theo cách riêng, sinh ra TCVN3, VNI, VISCII, VPS và nhiều bảng mã khác.

Phông .VnTime là bảng mã gì?

Các phông có tên bắt đầu bằng ".Vn" như .VnTime, .VnArial dùng bảng mã TCVN3, dựa trên TCVN 5712:1993. Phông có tên bắt đầu bằng "VNI-" dùng bảng mã VNI.

Vietkey do ai làm?

Vietkey gắn với tên tác giả Đặng Minh Tuấn. Bản Vietkey 2000 từng được dùng rộng rãi ở cơ quan và trường học Việt Nam trước khi các bộ gõ Unicode miễn phí khác phổ biến.

Tài liệu gõ bằng bảng mã cũ có mở được không?

Mở được nếu máy có phông đúng bảng mã, hoặc dùng công cụ chuyển mã trong bộ gõ để đổi sang Unicode. Sau khi chuyển, chọn phông Unicode như Times New Roman và nên giữ lại bản gốc để đối chiếu.

Mở app Lưu Loát

Gõ tiếng Việt nhanh, chuẩn, lưu loát từng dấu

Mở app Lưu Loát

Bài viết liên quan

Mở app Lưu Loát

Gõ tiếng Việt nhanh, chuẩn, lưu loát từng dấu

Mở app Lưu Loát Xem app khác