• Thứ Tư, 07/04/2004 10:52 (GMT+7)

    Về mã hóa tiếng Việt: Trao đổi và kiến nghị

    Về một số vấn đề chung

    Xin đừng hiểu lầm rằng hiện nay chỉ dùng bảng mã Unicode là 'toàn cầu hoá' được, do có rất nhiều nước phát triển về CNTT đã lâu và đã dùng thống nhất các bảng mã SBCS (Single-Byte Character Set), MBCS (Multi-Byte Character Set) hoặc CP (Code Page) rất thành công. Do đã có hàng 'núi' dữ liệu trên đó, họ cũng chẳng cần vội đi vào Unicode song các hãng lớn vẫn phải hỗ trợ đầy đủ Code Page của họ. Điển hình là Nhật. Làm phần mềm cho thị trường này thì nên am hiểu kỹ thuật DBCS (Double-Byte Character Set) hơn là Unicode!

    Trên các hệ điều hành (HĐH) Windows NT/2000/XP, các xử lý bên trong HĐH đều dựa trên mã hóa Unicode, nhưng chủ yếu vẫn là 8-bit (nhất là UTF-7, UTF-8). Luôn luôn có sự tương ứng 1-1, bảo toàn thuộc tính giữa các bảng mã CP và các tập con tương ứng trong Unicode. Các ký tự tiếng Việt được mã hóa trong Unicode tương ứng với CP 1258 thì được gọi là Unicode-1258 có kèm theo đầy đủ các công cụ xử lý đa ngữ (tính cách bản địa, hiển thị, mã hóa, bàn phím). Đó là một khái niệm rất rõ ràng và được cụ thể hoá bằng các hàm chuyển đổi MultiBytetoWideChar, WideCharto MultiByte. Trước khi có Unicode thì kỹ thuật mã hóa 8-bit kiểu SBCS hoặc DBCS đã rất phổ biến. Ví dụ, CP 932 cho tiếng Nhật,...

    Trong bài viết 'Người sử dụng cần biết được sự thật' (PC World B tháng 6/2002), tôi chỉ thực sự không đồng tình với cách đưa thông tin và cách triển khai TCVN như hai điểm sau đây:

    - Tại sao không ủng hộ một chuẩn do Nhà Nước đã chính thức công nhận liên tục trong TCVN 5712:1993 và TCVN 6909 (mã hóa tổ hợp)? Hơn nữa, đã sẵn có một giải pháp dựa trên mã hóa tổ hợp khá hoàn chỉnh của Microsoft.

    - Giải pháp mã hóa tiếng Việt đưa ra phải toàn diện, có được bản sắc tiếng Việt - và được HĐH hỗ trợ cấp hệ thống. Dường như các cài đặt của mã hóa dựng sẵn hiện nay đều chỉ nhắm vào việc hiển thị mà chưa hẳn là ưu điểm so với giải pháp có sẵn trong HĐH Win2000/XP.

    Vài kiến nghị

    Có lẽ những bàn cãi về mã hoá tổ hợp hay dựng sẵn đã quá nhiều, và cách mã hoá nào cũng không nên là vấn đề trở ngại đối với việc thống nhất tiếng Việt trên máy tính. Tôi tự nhận thấy có những việc cần thiết như sau: 

    1. Cần làm cho NSD và người làm phần mềm Việt Nam hiểu rõ hơn về Unicode và các bảng mã ngôn ngữ.

    2. Kiên trì thuyết phục tổ chức Unicode và Microsoft hỗ trợ đầy đủ TCVN 6909 (luôn cả mã hoá dựng sẵn), và tiếp theo là một số ngôn ngữ trong cộng đồng các dân tộc Việt Nam.

    3. Trong thời gian chờ đợi được sự hỗ trợ quốc tế, nên để tùy NSD tùy chọn cách mã hoá thích hợp theo TCVN 6909 hoặc tương đương, song dữ liệu cần nhất quán. Và các bộ gõ cần tìm cách tránh để NSD bị lầm lẫn, bằng cách hướng dẫn tỉ mỉ hoặc có tách biệt rõ khi sử dụng hay cài đặt.

    4. Xác định rõ các tính cách bản địa của tiếng Việt và các nước có nhiều quan hệ với Việt Nam.

    5. Phát triển các hàm chuyển đổi từ dựng sẵn sang tổ hợp và ngược lại để chuẩn bị cho các xử lý bên trong sau này; làm cho NSD và cả người làm ứng dụng không còn gặp khó khăn nữa về hai cách mã hoá.

    6. Chuẩn bị phát triển các công cụ xử lý đa ngữ, trong đó có tiếng Việt trên Linux và các hệ Unix thông dụng, với lưu ý đầy đủ về tính cách bản địa, mã hoá (cả tổ hợp lẫn dựng sẵn), hiển thị và bàn phím.

    7. Về cài đặt của chuẩn: Bất kỳ phần mềm nào tuân thủ chuẩn đều được hoan nghênh. Nhất là phần mềm có mã nguồn mở, hoặc càng tốn ít chi phí càng tốt.

    8. Tư vấn xây dựng lộ trình chuyển đổi sang Unicode sao cho rõ ràng, thực hiện được, với thời gian và chi phí tối thiểu. 

    Các ý kiến trên thật sự là chưa đủ. Rất mong đón nhận ý kiến của bạn đọc tạp chí PC World Việt Nam để cho thêm nhiều phản biện và giải pháp hay.

    Hà Thân

     

    ID: B0208_18