• Thứ Hai, 19/04/2004 10:39 (GMT+7)

    Tại sao phải cùng tồn tại hai kiểu mã hóa Unicode chữ Việt?

    Hôm nay, tôi có được PC World B số tháng 8/2002, với nhiều bài về chữ Việt Unicode mà, trong đó, các tác giả đều khẳng định (hoặc khuyến nghị) sự cần thiết cùng tồn tại của hai kiểu mã hóa cho chữ Việt: tổ hợp và dựng sẵn.

    Tôi vẫn không nhất trí luận điểm này, và không ngại mình là thiểu số ít ỏi, vẫn có tiếp ý kiến, dù sao cũng là trao đổi khoa học và nhất là việc triển khai chữ Việt Unicode chưa thực sự bắt đầu.

    Trước hết, xin phép lấy tư cách là một người sử dụng trong số hàng triệu người sử dụng chữ Việt để trình bày. Bởi vì còn có các bạn khác, các nhà làm chữ Việt (cài chữ Việt cho các môi trường nền), các nhà viết phần mềm, các nhà nghiên cứu ứng dụng công nghệ thông tin (CNTT) trong tiếng Việt, các nhà quản lý (ban hành mã chữ Việt). Có một điều mong các bạn thông cảm: Người sử dụng như tôi rất ít có được dịp để phát biểu ý kiến, còn các bạn thì lúc nào cũng dễ trình bày ý kiến và ý kiến các bạn được coi trọng. Nhưng các bạn là bao nhiêu người? Hàng nghìn là cùng, còn chúng tôi, những người sử dụng, hàng triệu. Chúng tôi mong muốn được giải đáp: Tại sao phải chấp nhận hai kiểu mã hóa chữ Việt? Bởi chúng tôi từng khổ sở bao nhiêu năm qua vì có nhiều kiểu mã hóa chữ Việt (tất nhiên 8-bit).

    Cách đây ba hôm, tôi có cập nhật lại danh sách lớp phổ thông trên MSWord và gửi cho các bạn lớp tôi. Nội dung email thì tôi viết chữ Việt không dấu, còn gửi kèm ba file .doc cho ba kiểu font đang được dùng nhiều trong cộng đồng người Việt: font ABC, font VNI và font Unicode. Những ba file cho một danh sách 40 người. Mỗi khi cập nhật xong, bao giờ tôi cũng lưu thành ba bản cho ba font và gửi đi, các bạn lớp tôi ai quen dùng gì đều đọc được cả. Tôi mất công là thế, chỉ vì tôi muốn có một danh sách với họ tên cùng địa chỉ là chữ Việt có dấu, còn thư email không dấu đọc cũng không sao, mặc dù rất nhiều khi khó chịu vì thiếu dấu.

    Và thực sự tôi đang rất lúng túng khi định chuyển đổi dữ liệu điện tử của công ty tôi sang Unicode. Lý do: Tôi không biết nên lựa chọn mã nào. Các bạn có thể tư vấn cho tôi được không? Nếu có vài bạn khuyên tôi chọn loại mã này, vài bạn khuyên tôi chọn bộ mã kia, tôi sẽ biết nghe ai? Trong số 8/2002, PC World B khuyến nghị rằng chúng ta nên thống nhất một kiểu mã hóa trong một "phạm vi cần thống nhất", hay có thể nói dễ hiểu hơn: trong một thế giới con. Nếu các thế giới con này không giao nhau thì ổn quá, nhưng không gian điện tử ngày nay vượt qua mọi khoảng cách địa lý, mọi khoảng cách con người và tổ chức (G2G, G2B, G2C, thậm chí C2C như lớp phổ thông của tôi), làm gì có các không gian con cách biệt như ốc đảo để dùng một kiểu mã hóa nào đó là ổn.

    Lịch sử 20 năm qua, người Việt chúng ta đã vật lộn với việc mã hóa chữ Việt. 20 năm đó thành công cũng nhiều mà sai lầm cũng không ít. Nhưng tại sao không thể "quên" đi 20 năm đó theo nghĩa dường như chúng ta chưa có một nghiên cứu và ban hành bộ mã nào hết. Điều đó có thể giả định được vì quá khứ chỉ là 8-bit. Còn bây giờ là 16-bit, là Unicode. Coi như bắt đầu từ đầu đi, và bắt đầu nói chuyện mã hóa chữ Việt, xử lý chữ Việt, trong đó có hiển thị. Nếu bắt đầu từ số 0 như vậy, câu hỏi tại sao phải có hai kiểu mã hóa sẽ dễ được nhìn nhận hơn và có thể trả lời được rõ hơn.

    Và câu hỏi: Tính "trong suốt" của thế giới phần mềm với Unicode nói chung, với chữ Việt nói riêng, có dễ đạt hay không? Kinh nghiệm ít ỏi của tôi nói rằng tính "trong suốt" này không có trong thế giới phần mềm gần như vô tận. Microsoft thì chưa (hoặc không) hỗ trợ dựng sẵn, Vietkey thì không hỗ trợ tổ hợp, đó là thực tế.

    Nếu có hai kiểu mã hóa cùng tồn tại, chúng ta sẽ ra sao?

    Với các nhà làm phần mềm (của các hãng CNTT thế giới hay của Việt Nam ta), mỗi khi động đến xử lý chữ Việt, bạn cũng phải viết chương trình gấp đôi lên để xử lý cả hai loại mã hóa. Khi đó, công test cũng sẽ gấp đôi... Hoặc chương trình của bạn luôn phải chuyển đổi giữa các loại mã. Khi đó, thời gian xử lý sẽ lâu hơn (bạn thử hình dung bức tường lửa cổng internet quốc gia phải lọc các cụm từ vi phạm văn hóa dân tộc). Thế nhưng chương trình của bạn chưa chắc đã chạy đúng một khi người dùng lầm lẫn (có thể do vô tình) kiểu mã này với kiểu mã khác, hoặc trong dữ liệu phải xử lý lẫn lộn cả hai kiểu mã, nếu người dùng quên phải đồng nhất dữ liệu.

    Với người sử dụng (như tôi), do không tin tưởng vào tính "trong suốt" của các phần mềm hỗ trợ Unicode, tôi phải biết rõ mình thao tác với dữ liệu kiểu mã nào để còn khai báo (hay truyền tham số). Tôi phải duy trì một bộ chuyển đổi từ mã này sang mã kia và ngược lại. Tôi phải nhớ hoặc ghi chú từng dữ liệu được mã theo kiểu nào, phải nhớ các đối tác (hay bạn bè) của tôi hay dùng loại mã nào.

    Tóm lại, biết bao nhiêu cái phức tạp phải thêm vào, song tôi không thạo lắm về sử dụng máy tính, về khai thác dữ liệu. Mà có thạo đi chăng nữa thì khi mệt mỏi hoặc bị vợ la, tôi vẫn có thể nhầm lẫn. Bạn, nhà lập trình, cũng bị mệt nhọc không kém trong việc làm cho phần mềm của bạn "trong suốt". Vì cái gì mà tôi và bạn phải mệt nhọc vất vả như thế? Vì chấp nhận hai loại mã cùng tồn tại? Tại sao phải chấp nhận điều đó? Thế có khác gì tình trạng như hiện nay với người Việt chúng ta đang đối mặt với nhiều bảng mã chữ Việt (!).

    Chúng tôi, những người Việt Nam sử dụng CNTT, mong muốn nhận được một sự trả lời thấu tình đạt lý cho câu hỏi (dành cho các chuyên gia và các nhà quản lý):

    Vì sao phải chấp nhận hai kiểu mã hóa Unicode chữ Việt, vì sao không thống nhất một kiểu?

    TS Bùi Quang Ngọc
    (Công ty FPT)

    ID: B0209_4