VIQR là kiểu gõ và cách viết tiếng Việt chỉ bằng ký tự ASCII 7 bit: đặt sau nguyên âm một ký hiệu trông giống dấu thật, như ' ` ? ~ . cho sắc, huyền, hỏi, ngã, nặng; ^ ( + cho mũ, trăng, móc; và dd cho đ. "Nước Việt Nam" viết theo VIQR là Nu+o+'c Vie^.t Nam. Quy ước này được nhóm Viet-Std mô tả trong tài liệu RFC 1456, phát hành tháng 5 năm 1993.
Ngày nay ít ai gõ VIQR hằng ngày, nhưng hiểu nó giúp đọc được thư từ, bài diễn đàn cũ và hiểu vì sao bộ gõ nào cũng còn giữ một mục "VIQR" trong danh sách kiểu gõ.
VIQR ra đời để làm gì
Đầu thập niên 1990, thư điện tử và các nhóm thảo luận Usenet chỉ chắc chắn chuyển được ký tự ASCII 7 bit: 26 chữ cái không dấu, chữ số và dấu câu. Tiếng Việt cần thêm, theo đúng con số trong RFC 1456, 134 tổ hợp chữ và dấu ngoài các chữ có sẵn trong ASCII. Gửi chữ có dấu qua đường thư lúc ấy rất dễ thành ký tự rác.
Cộng đồng người Việt ở nước ngoài dùng Usenet (đặc biệt nhóm soc.culture.vietnamese) cần một cách viết mà người nhận vẫn đọc được, dù máy họ không có phông tiếng Việt. Lời giải là viết dấu bằng chính ký tự ASCII có hình dáng gần giống dấu: dấu sắc là dấu nháy, dấu hỏi là dấu chấm hỏi, dấu ngã là dấu ngã. Người đọc bằng mắt thường vẫn hiểu, và phần mềm có thể đổi chuỗi đó thành chữ có dấu thật.
RFC 1456 do Vietnamese Standardization Working Group (nhóm Viet-Std) soạn, gồm các tác giả Cường T. Nguyễn, Học D. Ngô, Cường M. Bùi và Thành Văn Nguyễn theo danh sách cuối tài liệu. Tài liệu ghi rõ đây là văn bản cung cấp thông tin, "không quy định một chuẩn Internet". Cùng tài liệu ấy còn mô tả VISCII, một bảng mã 8 bit cho tiếng Việt. Tên gọi VIQR là viết tắt của VIetnamese Quoted-Readable, đọc là "vicker" theo chính RFC.
Bảng ký hiệu VIQR
| Dấu | Ký hiệu | Tên ký tự ASCII | Ví dụ VIQR | Ra chữ |
|---|---|---|---|---|
| trăng (ă) | ( | ngoặc đơn mở | a(n | ăn |
| mũ (â ê ô) | ^ | dấu mũ (caret) | co^ | cô |
| móc (ơ ư) | + | dấu cộng | co+, tu+ | cơ, tư |
| sắc | ' | dấu nháy đơn | ba'n | bán |
| huyền | ` | dấu huyền ASCII (backquote) | ba`n | bàn |
| hỏi | ? | dấu chấm hỏi | ba?n | bản |
| ngã | ~ | dấu ngã | ma~ | mã |
| nặng | . | dấu chấm | ba.n | bạn |
| đ / Đ | dd / DD | lặp chữ d | ddi | đi |
Thứ tự trong một chữ: nguyên âm, rồi dấu phụ (^ ( +), rồi dấu thanh. Ví dụ "Việt" là Vie^.t, "nặng" là na(.ng, "được" là ddu+o+.c. Cột "Ra chữ" là thứ bạn thấy khi gõ bằng bộ gõ đặt kiểu VIQR, hoặc khi phần mềm chuyển chuỗi VIQR sang Unicode.
Phím trên bàn phím nằm ở đâu
Trên bàn phím QWERTY thông dụng: dấu nháy ' ở bên phải phím chấm phẩy; dấu ` ở góc trái trên, cạnh phím số 1, cùng phím với ~ (phải giữ Shift); ^ là Shift + 6; ( là Shift + 9; + là Shift + phím bằng; ? là Shift + phím gạch chéo. Nghĩa là nhiều dấu VIQR phải bấm kèm Shift, và đây là lý do VIQR chậm hơn Telex hay VNI khi gõ dài.
Bài toán dấu câu thật và ký tự thoát
Cái khó của VIQR lộ ngay ở dấu chấm và dấu chấm hỏi. Câu tiếng Anh "How are you?" nếu đưa qua bộ chuyển VIQR sẽ biến thành "How are yỏ" vì "u?" bị hiểu là chữ u có dấu hỏi. RFC 1456 nêu đúng ví dụ này và cho biết đặc tả có cơ chế để tránh ghép dấu ngoài ý muốn, với chi tiết nằm ở tài liệu kỹ thuật đầy đủ của Viet-Std.
Trong thực tế, các bộ gõ dùng dấu gạch chéo ngược \ làm ký tự thoát: gõ "\" ngay trước ký hiệu để giữ nguyên nó là dấu câu. Mã nguồn bộ máy Unikey cũng gán phím \ làm phím thoát trong kiểu gõ VIQR.
| Muốn viết | Gõ VIQR | Ghi chú |
|---|---|---|
| Anh khỏe không? | Anh kho?e kho^ng\? | \? giữ dấu chấm hỏi cuối câu |
| Tôi đến rồi. | To^i dde^'n ro^`i\. | \. giữ dấu chấm |
| Câu 2 hỏi gì? | Ca^u 2 ho?i gi`\? | không có \ thì dấu ? sẽ đổi "gì" thành "gỉ" |
Nhiều bộ gõ thông minh hơn: nếu dấu chấm hay dấu hỏi theo sau một khoảng trắng, hoặc đứng sau một chữ không thể mang dấu, chúng tự hiểu đó là dấu câu. Nhưng ký tự thoát vẫn là cách chắc ăn nhất.
VIQR so với Telex và VNI
| Tiêu chí | VIQR | Telex | VNI |
|---|---|---|---|
| Phím dấu | ký hiệu ASCII | chữ cái | chữ số |
| Nhìn chuỗi gõ đoán được dấu | rất dễ, ký hiệu giống dấu | phải thuộc quy ước | phải thuộc số |
| Cần giữ Shift | nhiều (~ ^ ( + ?) | không | không |
| Xung đột với | dấu câu | chữ s f r x j w | chữ số liền chữ |
| Đọc được khi máy không có phông Việt | có | khó | khó |
| Dùng nhiều hôm nay | ít | nhiều nhất | khá nhiều |
Điểm mạnh duy nhất mà Telex và VNI không có: chuỗi VIQR đọc được bằng mắt. "Vie^.t Nam" nhìn là ra "Việt Nam", còn "Vieejt Nam" hay "Vie65t Nam" thì người không biết quy ước sẽ bối rối.
Gặp văn bản VIQR cũ thì làm sao
Lưu trữ thư từ, bài diễn đàn, tuyển tập thơ và lời bài hát của cộng đồng mạng thập niên 1990 còn khá nhiều ở dạng VIQR. Để đổi sang chữ có dấu thật:
- Sao chép đoạn văn bản VIQR.
- Mở công cụ chuyển mã của bộ gõ (Unikey Toolkit, công cụ chuyển mã của OpenKey, EVKey…).
- Chọn bảng mã nguồn là VIQR, bảng mã đích là Unicode, rồi chuyển.
- Đọc lại các chỗ có dấu chấm, dấu hỏi cuối câu; đây là nơi dễ bị ghép sai thành chữ có dấu.
Chiều ngược lại cũng làm được: đổi văn bản Unicode sang VIQR khi cần gửi qua một hệ thống chỉ nhận ký tự không dấu mà vẫn muốn người đọc hiểu đúng dấu.
Bài tập đọc và gõ VIQR
Đọc to các dòng sau rồi tự viết ra chữ có dấu. Đáp án ở cột phải.
| VIQR | Chữ có dấu |
|---|---|
| Xin cha`o ca'c ba.n | Xin chào các bạn |
| Ddu+o+`ng xa mo+'i bie^'t su+'c ngu+.a | Đường xa mới biết sức ngựa |
| Ho.c a(n, ho.c no'i, ho.c go'i, ho.c mo+? | Học ăn, học nói, học gói, học mở |
| Kho^ng thaa`y ddo' ma`y la`m ne^n | Câu cố ý sai: "thaa`y" không phải VIQR; đúng là tha^`y → "thầy" |
| Nu+o+'c Vie^.t Nam | Nước Việt Nam (ví dụ trong RFC 1456) |
Dòng thứ tư là cái bẫy dành cho người quen Telex: gõ đôi chữ a để ra â là cách của Telex, VIQR dùng dấu ^. Lẫn hai quy ước là lỗi hay gặp nhất khi tập VIQR.
Góc nhìn hôm nay
Unicode đã giải quyết bài toán gửi chữ có dấu qua mạng, nên lý do ra đời của VIQR không còn. Nhưng VIQR vẫn có mặt trong Unikey, EVKey, ibus-bamboo, và macOS có sẵn nguồn nhập "VIQR" cạnh Telex, VNI. Nó còn hữu ích ở vài chỗ:
- Ghi chú cách đọc tiếng Việt trong môi trường chỉ có ASCII: tên biến, ghi chú mã nguồn, tin nhắn qua thiết bị cũ.
- Dạy người nước ngoài: ký hiệu VIQR trực quan, nhìn là thấy dấu nằm ở đâu.
- Đọc tư liệu Internet tiếng Việt thời kỳ đầu.
Muốn xem bản gốc, tìm "RFC 1456" trên trang của RFC Editor: tài liệu chỉ vài trang, có bảng ký hiệu và cả bảng mã VISCII.
Câu hỏi thường gặp
VIQR là gì?
VIQR (VIetnamese Quoted-Readable) là quy ước viết và gõ tiếng Việt chỉ bằng ký tự ASCII, đặt ký hiệu giống dấu sau nguyên âm. Ví dụ "Việt Nam" viết là "Vie^.t Nam". Quy ước được mô tả trong RFC 1456 năm 1993.
Gõ VIQR dấu sắc, huyền, hỏi, ngã, nặng thế nào?
Sắc là dấu nháy ', huyền là `, hỏi là ?, ngã là ~, nặng là dấu chấm. Gõ ký hiệu ngay sau nguyên âm, sau các dấu ^ ( + nếu có.
RFC 1456 có phải là chuẩn quốc tế không?
Không. RFC 1456 tự ghi là văn bản cung cấp thông tin, không quy định chuẩn Internet. Nó mô tả hai quy ước đang được dùng lúc đó là VISCII và VIQR, và tên hai quy ước được đăng ký làm tên bộ ký tự cho thư điện tử MIME.
Làm sao gõ dấu chấm, dấu hỏi thật khi đang dùng VIQR?
Gõ dấu gạch chéo ngược \ ngay trước ký hiệu, ví dụ "\?" hoặc "\.". Nhiều bộ gõ cũng tự hiểu dấu đứng sau khoảng trắng là dấu câu.
Chuyển văn bản VIQR sang chữ có dấu bằng cách nào?
Dùng công cụ chuyển mã của Unikey, OpenKey hoặc EVKey, chọn nguồn là VIQR và đích là Unicode. Sau khi chuyển nên soát các dấu câu cuối câu vì dễ bị ghép nhầm thành chữ có dấu.