Web chữ Việt
Nhận xét
Bài viết này nêu lên nhận xét về chữ Việt trong máy tính. Chủ đề của bài này không phải là Unicode là gì mà là Những gì không phải là Unicode. Những đoạn trong bài viết hơi nhiều chi tiết về kỹ thuật sẽ được đánh dấu ▲, người đọc có thể bỏ qua nếu không muốn đi sâu vào chi tiết.
Không biết trên thế giới có thứ chữ viết nào mà được thể hiện trong máy tính bằng nhiều cách như chữ Việt không? Trước khi chữ Việt được đưa vào Unicode và khi Unicode chưa được phổ biến trong các phần mềm thông dụng thì có tới vài chục cách để ghi chữ Việt trong máy tính. Nào là VNI, Bách Khoa, Lạc Việt, VSCII, ABC, VPS… (Xem phần cuối bài để biết thêm về chữ trong máy tính trước khi có Unicode.)
Việc chữ Việt được đưa vào Unicode đã làm giảm bớt tình trạng thập nhị sứ quân trong thế giới phần mềm Việt Nam. Nhưng cho tới lúc này vẫn còn rất nhiều người tiếp tục tạo ra những dòng chữ Việt trong máy tính theo những cách không phải Unicode.
Tôi đã từng hỏi một người quen là tại sao phải đi tìm font chữ VNI về cài vào máy để soạn ra những tài liệu theo VNI mà không dùng font chữ Unicode có sẵn trong máy (Arial, Times New Roman, Courier New). Câu trả lời là font chữ VNI đẹp hơn!
Thậm chí có những tài liệu chữ Việt chứa những câu lẫn lộn vài chữ kiểu VNI với vài chữ kiểu Unicode. Gặp tài liệu kiểu này thì tôi không dám hỏi tại sao nữa!
Đúng vậy, thật sự là đang có nhiều thứ chữ Việt được gọi là Unicode trong các server Internet; được gọi là Unicode nhưng không thật sự là Unicode.
Kiểu Unicode giả thứ nhất là do sự lầm lẫn giữa Unicode với hai bộ chữ (character set) của Microsoft cũng có khả năng thể hiện chữ Việt. Đó là bộ chữ Windows-1252 và Windows-1258. Đây là hai bộ chữ 8-bit (tức là mỗi chữ cái được ghi trong máy tính với tám bit). Microsoft soạn ra bộ chữ Windows-1252 dành cho các chữ viết của các ngôn ngữ Tây Âu, và bộ chữ Windows-1258 dành cho chữ Việt.
Làm sao mà lầm được khi có nhiều người dùng đã biết là phải dùng chữ Việt Unicode?
Bởi vì các chương trình của Microsoft như là Microsoft Office sẽ dùng bộ chữ của Microsoft một cách mặc định để tạo ra tài liệu. Nếu chạy trên môi trường Windows tiếng Anh thì bộ chữ mặc định là Windows-1252, nếu chạy trên môi trường Windows tiếng Việt thì bộ chữ mặc định là Windows-1258. Hầu hết các máy tính ở Việt Nam dùng bản Windows tiếng Anh, rất hiếm khi thấy máy tính có bản Windows chữ Việt, nên hầu hết các tài liệu tạo ra theo bộ chữ Windows-1252.
Thế làm sao mà bộ chữ 8-bit lại chứa được chữ Việt Unicode 16-bit?
Bộ chữ Việt Windows-1258 chỉ dùng 8-bit để thể hiện chữ Việt vì nó dùng nguyên tắc tổ hợp, tức là dấu thanh rời ra khỏi nguyên âm. Theo cách tổ hợp này thì 8-bit cũng đủ để thể hiện tất cả chữ Việt có dấu. Mặc dù chữ Việt trong Unicode cũng có kiểu thể hiện dấu thanh rời ra khỏi nguyên âm nhưng chữ Việt Windows-1258 không phải là chữ Việt Unicode.
Thế còn bộ chữ Windows-1252 thì sao, nó đâu có được thiết kế để chứa các nguyên âm và dấu thanh chữ Việt?
Và tại sao người ta vẫn có thể gõ chữ Việt với nguyên âm và dấu thanh dựng sẵn (cần 16-bit) vào trong tài liệu Windows?
Đó là vì các chương trình ứng dụng Microsoft Office sẽ tự động ghi những chữ đó theo kiểu Unicode lẫn vào trong tài liệu kiểu Windows. Những chữ Unicode đó được ghi theo một cách riêng để chương trình Microsoft Office biết mà hiện ra cho đúng.
Tóm lại, hầu hết các tài liệu soạn ra trên Windows đều không phải là Unicode thuần. Có một chương trình của Microsoft trên Windows (NT, XP) soạn ra được tài liệu Unicode thuần, đó là Notepad. Khi ta gõ chữ Việt vào Notepad rồi lưu lại, nó sẽ hỏi là ta có muốn lưu lại theo dạng Unicode không. Nhưng Notepad lại rất ít được dùng để soạn tài liệu vì khả năng của nó quá hạn chế.
Vậy việc gì xảy ra khi những tài liệu Unicode ba rọi đó được đưa lên Internet?
Dạng tài liệu phổ biến nhất trên Internet là HTML. Trong phần đầu của tài liệu HTML có một dòng cho biết bộ chữ được dùng trong tài liệu. Ví dụ:
<meta content="text/html; charset=UTF-8" http-equiv="content-type">
dòng này có nghĩa là tài liệu dùng bộ chữ Unicode dưới dạng UTF-8.
Gần như tất cả các trang web chữ Việt đều có ghi chú là trang web này dùng bộ chữ Unicode nhưng trong số đó có rất nhiều trang web dùng Windows-1252. Trang web tiếng Việt theo Windows-1252 sẽ có dòng:
<meta content="text/html; charset=windows-1252" http-equiv="content-type">
và những chữ Việt trong đó sẽ được ghi theo cách đặc biệt gọi là HTML entities có dạng như sau: cách thiết kế phần mềm hướng
với cách ghi này, hầu như chúng ta không thể đọc-hiểu được nếu không có web browser diễn dịch lại thành chữ Việt bình thường.
Nếu tài liệu được viết bằng đúng Unicode thuần (UCS2 hoặc UTF-8) thì không cần web browser chúng ta cũng đọc-hiểu được. Các bạn có thể thử chọn menu View source của web browser khi đang xem các trang web chữ Việt sẽ thấy một số trang viết theo kiểu Unicode thuần còn một số trang viết theo kiểu Windows-1252.
Tuy nhiên cũng có một số trang web dùng Unicode nhưng không viết dưới dạng UTF-8 mà lại viết theo kiểu HTML entities. Đó là kiểu Unicode giả thứ hai.
Các web site chữ Việt dùng đúng UTF-8: lhboi.homelinux.net, mail.google.com, mail.yahoo.com, vnoss.org, eab.com.vn, www.bidv.com.vn, www.baoviet.com.vn, www.manulife.com.vn, vietnamnet.vn, www.nld.com.vn, www.thanhnien.com.vn, tuoitre.com.vn, www.pcworld.com.vn, www.sgtt.com.vn…
Các web site chữ Việt dùng HTML entities: google.com, acb.com.vn, vnexpress.net, www.htv.com.vn
Các web site chữ Việt dùng Windows-1252: www.vietcombank.com.vn, www.vcbs.com.vn, vietnamgiapha.com, basao.com.vn, www.voh.org.vn
Các web site chữ Việt dùng Windows-1258: livefeeling.com/viet/index.htm
Những nhược điểm của những trang web không dùng đúng UTF-8:
Nhược điểm thứ nhất là tốn chỗ, tốn thời gian truyền qua Internet.Nhân nói về web browser và điện thoại di động, ta cũng nhắc đến một kiểu thể hiện chữ Việt trong Internet nữa là chữ Việt không dấu. Mặc dù phần lớn các máy điện thoại di động được bán ra trong những năm gần đây trên thị trường Việt Nam đều hiện được chữ Việt Unicode, nhưng hầu hết các trang wml ở Việt Nam đều được viết dưới dạng chữ Việt không dấu, rất khó coi.
Nhược điểm thứ hai đã nói ở trên là không đọc được nếu không có web browser.
Thậm chí một số web browser đặc biệt cũng không đọc được kiểu HTML entities trong các trang web chữ Việt theo Windows-1252 hay Windows-1258. Đó là những micro browser trong các máy điện thoại di động, do khả năng giới hạn nên nó chỉ đọc được đúng một loại Unicode. Như vậy những trang web chữ Việt theo Windows-1252 hay Windows-1258 sẽ không được xem trên các máy di động.
▲Các bạn sẽ hỏi làm sao server biết được điện thoại nào có chữ Việt để gửi ra đủ dấu?
Có đấy. Khi micro browser trong máy điện thoại gửi yêu cầu xem một trang đến server nó cũng cho server biết luôn là nó muốn xem ngôn ngữ gì theo bộ chữ nào, đó là các Header. Ví dụ: Accept-Language: vi, Accept-Charset: UTF-8. Nếu server làm việc đúng cách nó phải xem các Header để biết khi nào nên gửi chữ Việt cho máy điện thoại.
Các lỗi khác trong các trang web Việt
Lỗi viết sai các ký hiệu superscript và subscript
Các ký hiệu phải viết kiểu superscript và subscript như độ, mét vuông, mét khối rất thường gặp nhưng cũng rất thường bị viết một cách cẩu thả như:
- 29oC hay 29OC thay vì 29 oC, hay 29 °C
- quay 180O thay vì quay 180o hay 180°
- 14m2 thay vì 14 m2 hay 14 m², 15 triệu đồng/m2 thay vì 15 triệu đồng/m²
- 12m3 thay vì 12 m³
- H2O thay vì H2O hay H₂O
Đối với những nơi chuyên nghiệp như các báo mà cũng viết sai thì thật là đáng chê.
Có hai cách ghi đúng những ký hiệu đó. Cách thứ nhất là dùng lệnh định dạng chữ cao (superscript) hay chữ thấp (subscript). Cách thứ hai là dùng các ký hiệu có sẵn trong bộ chữ Unicode, viết theo cách này đẹp hơn.