Đặt vấn đề:
Đối với người sử dụng tiếng Việt và các doanh nghiệp Việt Nam, nhu cầu sử dụng tiếng Việt trong quá trình gởi và nhận E-mail là rất lớn. Tuy nhiên, không phải bất kì dòng máy nào cũng hỗ trợ tiếng Việt một cách mạnh mẽ.
Các dòng máy BlackBerry sử dụng hệ điều hành phiên bản 4.5 về trước đều sử dụng bảng mã Unicode Tổ Hợp(Composite Unicode), trong khi hiện nay người sử dụng Unicode thường sử dụng loại Unicode dựng sẵn, và đa số các website Việt Nam đều sử dụng Unicode dựng sẵn. Loại Unicode này hiển thị không tốt đối với các máy phiên bản 4.5.
Kể từ phiên bản 4.6, Research In Motion đã thêm vào font chữ Unicode dựng sẵn, tuy nhiên việc hiển thị cũng không được tốt bằng việc hiển thị Unicode Tổ Hợp, vốn đã được các dòng máy BlackBerry hỗ trợ từ rất lâu.
Chương 6: các kĩ thuật xử lý trong ứng dụng
82
Nhu cầu sử dụng tiếng Việt trong soạn thảo E-mail cũng rất lớn. Trong khi các chương trình hiện tại chưa thể đáp ứng nhu cầu này. Và không phải dòng máy nào cũng có thể hỗ trợ việc gõ tiếng Việt cũng như có font chữ tiếng Việt để hiển thị
Hướng giải quyết:
Hướng giải quyết hiển thị tiếng Việt:
Loại bỏ dấu để hiển thị tiếng Việt không dấu.
Ưu điểm: Thực hiện nhanh, tiếng Việt không dấu dễ dàng hiển thị ở nhiều vùng khác nhau.
Khuyết điểm: Người dùng sẽ khó đọc và dễ bị hiểu lầm từ tiếng Việt khi không bỏ dấu.
Hiển thị tiếng Việt ở các dòng máy có hệ điều hành mới(Từ OS 4.6 trở lên). Ưu điểm: Hiển thị tiếng Việt tốt, không cần xử lý phức tạp. Khuyết điểm: Hạn chế cho các dòng máy cũ.
Chuyển tiếng Việt từ Unicode dựng sẵn thành Unicode tổ hợp: Chương trình sử dụng giải pháp này.
Ưu điểm: Hiển thị tiếng Việt tốt ở tất cả dòng máy.
Khuyết điểm: Phải xử lý chuyển mã tiếng Việt mỗi khi phát hiện có tiếng Việt.
Hướng giải quyết soạn thảo tiếng Việt:
Sử dụng bảng AutoText có sẵn của chương trình: Đây là giải phảp hiện đang được sử dụng nhiều đối với những người sử dụng BlackBerry ở Việt Nam. Một bảng Auto Text bao gồm các chữ tiếng Việt thông dụng được thiết lập sẵn trong máy, người dùng sẽ gõ tiếng Việt có dấu kiểu Telex.
Ưu điểm: Có thể gõ tiếng Việt ở tất cả các chương trình trong máy.
Khuyết điểm: Bảng chữ tiếng Việt còn hạn chế, việc thêm bảng mã khó khăn.
Chương trình gởi và nhận mail BlackBerry sử dụng một bộ gõ riêng tích hợp vào chương trình để gõ tiếng Việt.
Do cấu trúc bàn phím của thiết bị di động khác với cấu trúc bàn phím của máy tính. Các phím số được nằm chồng trên các phím chữ, vì vậy việc gõ tiếng Việt kiểu Vni rất khó khăn. Vì lý do này, chương trình sẽ gõ tiếng Việt bằng kiểu Telex.
Giải pháp sử dụng:
Chuyển Unicode dựng sẵn thành Unicode tổ hợp:
Mỗi một ký tự trong Unicode dựng sẵn đều có thể chuyển đổi tương đương thành Unicode tổ hợp. Vì vậy việc chuyển đổi Unicode dựng sẵn thành Unicode tổ hợp đơn thuần chỉ là việc thay đổi từng ký tự tương đương.
Các ký tự Unicode dựng sẵn có thể tham khảo trong bảng sau:
http://unicode.org/charts/case/chart_Latin.html
Unicode tổ hợp Ký tự trong tiếng Việt
Chương 6: các kĩ thuật xử lý trong ứng dụng 83 \u0111 Đ \u0103 Ă \u00e2 Â \u00ea Ê \u00f4 Ô \u01a1 Ơ \u01b0 Ư \u0301 Dấu sắc \u0300 Dấu huyền \u0309 Dấu hỏi \u0303 Dấu ngã \u0323 Dấu nặng
Bảng 6.1 - Các ký tự Unicode tổ hợp
Đối với việc đọc và hiển thị tiếng Việt:
Khi đọc và hiển thị một E-mail, chương trình sẽ kiểm tra E-mail đó có chứa nội dung tiếng Việt không thông qua hàm hasNormalizableCharacters() của lớp
UnicodeNormalizer(). Hàm này có chức năng kiểm tra có kí tự tiếng Việt trên
bảng trên hay không.
Nếu có nội dung tiếng Việt thì sử dụng hàm normalize() để chuyển mã từ Unicode dựng sẵn thành Unicode Tổ hợp. Hàm này có chức năng chuyển đổi tương đương giữa unicode tổ hợp và unicode dựng sẵn như bảng trên.
Đối với việc ghi tiếng Việt:
Việc ghi tiếng Việt trong chương trình là quá trình kiểm tra và thay đổi từng ký tự người dùng gõ tương ứng với các ký tự trong bảng mã Unicode Tổ hợp.
Khi người dùng ghi 1 ký tự, chương trình sẽ kiểm tra xem ký tự đó có nằm trong bảng mã unicode tổ hợp không và thay thế tương ứng các ký tự đó bằng các ký tự Unicode Tổ hợp. Việc kiểm tra và thay thế này được thực hiện bằng các hàm trong
lớp VietnameseParser.