Mục tiêu là chuyển mã tiếng Việt có dấu unicode về dạng không dấu mà vẫn đảm bảo khi chuyển ngược lại thì dấu tiếng Việt vẫn được bảo toàn. Để thực hiện, ý tưởng của tác giả đề xuất là:“mã hóa” ký tự tiếng việt có dấu thành ký tự không dấu có kèm thêm mã xác định dấu của từ đó. Có hai phương án lựa chọn là chuyển về dạng mã của kiểu gõ Telex hoặc kiểu gõ VNI.
Qua quá trình phân tích và lựa chọn, tác giả chọn cách chuyển về dạng mã của kiểu gõ VNI. Để thực hiện, tác giả sẽ khai báo 2 tập ký tự: KTUnicode
dùng để chứa các ký tự tiếng Việt có dấu, KTVNI chứa các ký tự tương ứng trong KTUnicode nhưng ở dạng không dấu và kèm theo “số xác định dấu”. Cụ thể như sau:
String[] KTUnicode = { "đ", "â", "ă", "ê", "ô", "ơ", "ư", "á", "à", "ả", "ã", "ạ", "ấ", "ầ", "ẩ", "ẫ", "ậ", "ắ", "ằ", "ẳ", "ẵ", "ặ", "é", "è", "ẻ", "ẽ", "ẹ", "ế", "ề", "ể", "ễ", "ệ", "í", "ì", "ỉ", "ĩ", "ị", "ó", "ò", "ỏ", "õ", "ọ", "ố", "ồ", "ổ", "ỗ", "ộ", "ớ", "ờ", "ở", "ỡ", "ợ", "ú", "ù", "ủ", "ũ", "ụ", "ứ", "ừ", "ử", "ữ", "ự", "ý", "ỳ", "ỷ", "ỹ", "ỵ" };
String[] KTVNI = { "d9", "a6", "a8", "e6", "o6", "o7", "u7", "a1", "a2", "a3", "a4", "a5", "a61", "a62", "a63", "a64", "a65", "a81", "a82", "a83", "a84", "a85", "e1", "e2", "e3", "e4", "e5", "e61", "e62", "e63", "e64", "e65", "i1", "i2", "i3", "i4", "i5", "o1", "o2", "o3", "o4", "o5", "o61", "o62", "o63", "o64", "o65", "o71", "o72", "o73", "o74", "o75", "u1", "u2", "u3", "u4", "u5", "u71", "u72", "u73", "u74", "u75", "y1", "y2", "y3", "y4", "y5" };
Cách chuyển các ký tự có dấu tiếng Việt sang dạng mã của kiểu gõ VNI được mô tả như sau:
- Đầu vào là câu hỏi strCH là kết quả ở bước loại bỏ các ký tự thừa và được chuyển về các ký tự thường. KTUnicode là tập bảng mã các ký tự tiếng Việt có dấu, KTVNI là tập các ký tự tương ứng trong KTUnicode được chuyển sang dạng mã VNI.
- Đầu ra là câu hỏi strKQ đã chuyển mã các ký tự có dấu tiếng Việt thành dạng mã của kiểu gõ VNI.
Lưu đồ mô tả chi tiết công việc được trình bày trong phụ lục 3 Ví dụ với câu hỏi “Trường Đại học Lạc Hồng có bao nhiêu ngành” ta sẽ thu có được câu hỏi sau: “tru7o72ng d9a5i ho5c la5c ho62ng co1 bao nhie6u nga2nh”.
Cách chuyển ngược lại các ký tự ở dạng mã của kiểu gõ VNI về các ký tự có dấu tiếng việt Unicode được mô tả như sau:
- Đầu vào là câu hỏi strCH là ở dạng mã kiểu gõ VNI, KTUnicode là tập bảng mã các ký tự tiếng Việt có dấu, KTVNI là tập các ký tự tương ứng trong KTUnicode được chuyển sang dạng mã VNI.
- Đầu ra là câu hỏi strKQ đã chuyển mã các ký tự ở dạng mã kiểu gõ VNI về các ký tự có dấu tiếng Việt Unicode.
Lưu đồ mô tả chi tiết công việc được trình bày trong phụ lục 3.