Đặng Minh Tuấn Mã dựng sẵn mã tổ hợp Đặng Minh Tuấn Mã dựng sẵn mã tổ hợp Chào mừng bạn đón đọc đầu sách từ dự án sách cho thiết bị di động Nguồn: http://vnthuquan.net/ Tạo ebook: Nguyễn Kim Vỹ MỤC LỤC Mã dựng sẵn mã tổ hợp Đặng Minh Tuấn Mã dựng sẵn mã tổ hợp Mã dựng sẵn mã tổ hợp, bàn thêm Unicode TCVN 6909 Dựng sẵn tổ hợp Có hai dòng giải pháp để xử lý tiếng Việt máy tính mã dựng sẵn mã tổ hợp Cả hai có ưu nhược điểm riêng chủ đề gây nhiều tranh luận.Trong phân tích cách có hệ thống khía cạnh kỹ thuật hai giải pháp này, đồng thời bàn thêm số điểm khác xung quanh Unicode vàTCVN5909 Trước tiên cần làm rõ khái niệm ký tự dựng sẵn ký tự tổ hợp Ký tự dựng sẵn ký tự không tổ hợp từ ký tự khác Ký tự tổ hợp ký tự tổ hợp từ ký tự bản, ví dụ chữ/ký tự "ừ" tổ hợp ký tự ký tự dấu huyền ` Trong Unicode, ký tự tổ hợp tổ hợp từ thành phần nhỏ ký tự ASCII, ký tự dấu nguyên âm ký tự dấu thanh- ta có biểu diễn tắc (canonical) Vídụ chữ "ừ" dạng biễu diễn nói chuỗi ký tự sau: Tổ hợp ký tự Chuỗi mã Hex Tạo Ebook: Nguyễn Kim Vỹ Nguồn truyện: vnthuquan.net Mã dựng sẵn mã tổ hợp Đặng Minh Tuấn Dựng sẵn 1EAB Tổ hợp ư+ 01B0,0300 Chính tắc u++ 0075,031B,0300 Mã dựng sẵn mã tổ hợp q trình mã hóa ký tự thành ký tự dựng sẵn hay thành ký tự tổ hợp Trong này, ta coi Canonical dạng mã hoá tổ hợp ƯU ĐIỂM CỦA MÃ TỔ HỢP Mã tổ hợp có phần gọn nhẹ chiếm mã bảng mã, cần 20 vị trí cho ký tự Việt ( ă, â, ê, ô, ơ, ư, ă, â, Ê Ô Ơ ư, dấu : huyền, hói, ngã, sắc, nặng dấu tổ hợp nguyên âm : nón, mũ, râu cho dạng canomcal) mã dựng sẵn cần đến 134 cho ký tự Việt Mã tổ hợp có phần gần với ngơn ngữ tự nhiên (Việt) trình ghép chữ, ghép vần Mã tổ hợp dễ dàng việc chuyển đổi chữ hoa/chữ thường, số ứng dụng dùng ln tính Change case có sẵn để chuyển đổi Mã tổ hợp dễ dàng việc xếp tiếng Việt , thực vậy, lý dấu huyền, sắc ngã, hỏi, nặng - thứ tự bảng mã Unicode - lại nằm không theo thứ tự xếp tiếng Việt huyền, hỏi, ngăn, sắc, nặng, phải thiết kế thuật tốn riêng để xếp mà khơng thể dùng hàm có sẵn tiếng Anh Khi phải dùng thuật toán riêng việc xếp cho mã dựng sẵn khơng khó hơn, khơng phức tạp nhiều so với việc xếp mã tổ hợp Mã tổ hợp có phần dễ dàng việc tìm kiếm tiếng Việt gần đúng, ví dụ chữ tiếng Việt gần với âm "tha" chẳng hạn, hàm tìm kiếm phổ thơng tìm chữ thà, thá, thả, tha Nhưng tìm từ gần với âm "than" lúc lại phải thiết kế thuật toán riêng, mà phải dùng thuật toán riêng tổ hợp dựng sẵn thuật tốn khơng khó nhiều Trong thực tế, mã tổ hợp hỗ trợ tốt môi trường Windows 2000, MSoffice2000, ý tốt chuyển đổi chữ hoa/thường, xếp Tiếng Việt thiết kế hệ điều hành số ứng dụng Mã tổ hợp tốt số control có sẵn Windows 2000,XP Với WindowsXP, Microsoft hỗ trợ mã dựng sẵn với tính xếp tiếng Việt Vietkey Group phối hợp với Microsoft việt Nam tiến hành loạt thí nghiệm Tạo Ebook: Nguyễn Kim Vỹ Nguồn truyện: vnthuquan.net Mã dựng sẵn mã tổ hợp Đặng Minh Tuấn Window rút kết luận Các kết luận không cho Windows 95 Windows 98 NHƯỢC ĐIỂM CỦA BỘ MÃ TỔ HỢP Cài đặt mã tổ hợp phức tạp, số lượng môi trường cài đặt bị hạn chế nhiều so với mã dựng sẵn, thông thường cài đặt với font vector font cho phép định nghĩa ký tự có độ rộng âm, ký tự có độ rộng âm dương tổ hợp lại cho ký tự cần hiển thị Một khó khăn lớn phần lớn công nghệ font phổ biến ngày truetype,Opentype Typel không cho phép thay đổi động vị trí nét hình chưa mà điều lại cần thiết Ví dụ chữ "à" , "À" , vị trí dấu huyền phải nằm cao độ khác tuỳ theo chữ sở chữ thường hay chữ hoa việc thay đổi động cao độ dấu than theo ngữ cảnh chưa thực kỹ thuật font chữ hành Để khắc phục vấn đề này, VNI phải đề xuất mã riêng cho dấu : dấu huyền, mã cho chữ hoa mã cho chữ thường Trong CP1258 Unicode để đảm bảo tính đơn trị (tính một- một) dấu có mã khó khăn hiển thị Phương án thứ mà Microsoft đưa để giải vấn đề tăng giảm độ cao dấu dùng kỹ thuật Hook API thay đổi hàm Display qua ánh xạ (Map) chuỗi ký tự tổ hợp chuỗi ký tự dựng sẵn để hiển thị in ấn Cơ chế có windows95 tiếng Việt, Windows 2000, WindowsXP mà khơng có windows95, Windown98 Cơ chế khơng phải thực tốt, Windows XP Từ việc cài đặt mã tổ hợp phức tạp dẫn đến nhược điểm thứ hai nghiêm trọng, tính tương thích mã tổ hợp Có nghĩa văn bảng mã tổ hợp mơi trường không đọc môi trường khác Nhất dùng font bitmap để làm font hệ thống cài đặt mã tổ hợp, dos,textconsole nhiều môi trường unix,Linux Mã tổ hợp cài đặt hệ điều hành phổ biến Windows98 chữ xấu khơng thể chấp nhận Sẽ vấn đề lớn dùng mã tổ hợp phải nâng cấp phần cứng máy tính lên Windows 2000, XP (theo khuyến cáo Microsoft để chạy mã tổ hợp tốt hơn) , cần kinh phí lớn để nâng cấp, đào tạo lại Độ mỹ thuật mã tổ hợp thường nhiều so với mã dựng sẵn, lý ký tự dấu có vị trí cao độ xác định font chữ thường dùng chung cho nhiều nguyên âm khác chúng tổ hợp tự động sau nhập đoạn text Vị trí dấu hợp đẹp với nguyên âm lại khơng phù hợp với ngun âm khác Ví dụ độ rộng nguyên âm A khác với độ rộng nguyên âm I (độ rộng hẹp) đẹp cho chữ A xấu cho chữ I ngược lại, để khắc phục tình trạng VNI phải định nghĩa riêng mã cho chữ ì, ì, ĩ, ị Vì thường coi VNI giải pháp khắc phục tình mã, khơng đảm bảo Tạo Ebook: Nguyễn Kim Vỹ Nguồn truyện: vnthuquan.net Mã dựng sẵn mã tổ hợp Đặng Minh Tuấn tính đơn trị, quán (có nhiều mã cho dấu - với chữ lại có xử lý khác so với xử lý nguyên âm khác) Trong mã dựng sẵn thiết kế từ trước (dựng sẵn) nên bố trí vị trí dấu nhờ vào vị trí thích hợp cho nguyên âm, nên có khả đẹp nhiều so với mã tổ hợp Xử lý hiệu ứng với đoạn mã tổ hợp có nhiều vấn đề khó khăn so với mã dựng sẵn Trong nhiều trường hợp, chữ tiếng Việt lưu trữ hiển thị với mã dựng sẵn lại thể thống (tổ hợp từ ký tự rời rạc) thực hiệu ứng với đoạn văn co dãn text, xoay, dồn chữ, canh hai bên dấu chữ thường bị tách rời nhau, chữ nơi dấu nơi, ảnh hưởng đến mỹ thuật độ xác Có thể thấy tít báo dùng font VNI hay xuất hiện tượng xa rời dấu Xử lý với ký tự mã tổ hợp phức tạp so với mã dựng sẵn, chữ mã tổ hợp có độ rộng thay đổi, lúc ký tự, lúc khác lại tổ hợp từ nhiều byte khác Khi tách từ, tách ký tự (theo ngôn ngữ tự nhiên), thường dùng để phân tích cú pháp hay đánh số phải xây dựng thuật toán riêng phức tạp, mã dựng sẵn có độ rộng cố định nên việc rút ký tự từ đoạn text đơn giản, khơng cần xây dựng thuật tốn riêng Ngồi việc xử lý ký tự khác như: xóa ký tự, di chuyển cho trỏ di theo đơn vị ký tự thực với mã tổ hợp khó khăn phức tạp : thường phải xóa sẵn cho chữ, di chuyển lần trỏ khỏi chữ, điều xa lạ với ngơn ngữ tự nhiên Kích thước tệp liệu lưu dạng tổ hợp thường lớn so với mã dựng sẵn khoảng 25-30% chiếm nhiều không gian đĩa cứng, nhớ hơn, đường truyền mạng (intemet/intranet) ngốn nhiều băng thông Trong sở liệu, thiết kế cấu trúc CSDL với mã tổ hợp thường phức tạp Vì biết trước số chữ max lại khó đốn nhận xác độ dài chuỗi byte tương ứng lớn nhất, thiết kế bị tràn nhớ Và khó khăn việc phân tách ký tự, phân tách từ làm khó khăn thêm việc xử lý text lĩnh vực sở liệu Trong việc đánh số (index) , tìm kiếm tồn văn (fulltextsearch), mà tổ hợp gây nhiều khó khăn (phân tách từ, phân tách ký tự) ký tự dấu mã tổ hợp thường bị coi dấu phân cách từ, dẫn đến việc đánh index bị sai tìm kiếm tồn văn không Hiện tượng thường gặp với đa số search engine, cơng cụ tìm kiếm toàn văn Oracle Lotus Notes 5.0 bị lỗi đánh số sai Tuy Oracle Lotus Notes hỗ trợ Unicode phần encoding, đáng tiếc phần Full Text Search mua lại hãng thứ INSO Verity thực phân cách từ sai với mã tổ hợp Nhưng lỗi khơng xảy với mã dựng sẵn Tính thực tế mã tổ hợp mã dựng sẵn : đa số Việt Nam nước ngoài, Unicode dựng sẵn dùng phổ biến, website việt Nam Vnexpress VASCorient Tạo Ebook: Nguyễn Kim Vỹ Nguồn truyện: vnthuquan.net Đặng Minh Tuấn Mã dựng sẵn mã tổ hợp hàng ngày có gần triệu lượt truy nhập chứng tỏ số lượng người dùng mã dựng sẵn lớn, website dùng mã tổ hợp ƯU VÀ NHƯỢC CỦA MÃ DỰNG SẴN Những ưu nhược điểm mã dựng sẵn phân tích kỹ song song q trình phân tích ưu nhược điểm mã tổ hợp Tôi xin tổng kết lại cách tóm tắt: mã dựng sẵn khơng bị nhược điểm mã tổ hợp, file sử dụng mã dựng sẵn tốn khơng gian nhớ, cài đặt đơn giản hơn, chữ hiển thị đẹp hơn, mỹ thuật hơn, xử lý với xâu ký tự dựng sẵn dễ dàng (phân tách từ, phân tách ký tự, xóa di chuyển trỏ) , chữ dấu khối thống nên co dãn text không bị tượng xa rời dấu thanh, đặc biệt tính tương thích mã dựng sẵn cao chạy nhiều mơi trường khác ( từ font vector đến bitmap, từ Windows, Macintosh đến Linux), chuyển mang văn liệu môi trường không đồng (Multiplatform) điều cần thiết Tất ưu điểm mã tổ hợp, lại khơng phải vả giải tương đối dễ dàng, mã tổ hợp có vấn đề kỹ thuật phức tạp (cài đặt hiển thị ) Vẫn biết kỹ thuật phải theo chuẩn, thời điểm có giới hạn định kỹ thuật cơng nghệ ví dụ cách 30 năm, mã hóa bit giới hạn chưa giải không gian nhớ eo hẹp ngày cài đặt mã tổ hợp nhiều môi trường chưa thể làm phải làm khó khăn vòng vo ánh xạ từ tổ hợp dựng sẵn Các nhược điểm mã tổ hợp khắc phục phần thời điểm khắc phục hoàn toàn tương lai, theo ý kiến chúng tôi, nên chọn phương án đơn giản, dễ cài đặt, đẹp nhiều ưu điểm mã dựng sẵn lợi mã tổ hợp mang lại khơng đáng kể mà để thực hồn hảo lại có nhiều khó khăn Chân lý nhiều lại đơn giản vấn đề Cái nói nhược điểm mã dựng sẵn chưa Microsoft ý hỗ trợ nhiều Trong thời gian trước Microsoft có thiên hướng theo mà tổ hợp ( phần nâng cấp từ mã 8-bit CP1258 lên) Những xử lý tiếng Việt xếp, chuyển đổi chữ hoa/thường tích hợp ln vào hệ điều hành tốt so với mã dựng sẵn, điều với Windows2000 ( khơng với windows 95, 98 ), ngồi WindowsXP, Microsoft bắt đầu hỗ trợ thêm mã dựng sẵn vào hệ điều hành: phần xếp tiếng Việt việc tương lai Microsoft hỗ trợ hồn tồn mã dựng sẵn vào hệ điều hành khơng phải vấn đề phức tạp kỹ thuật Ngoài trước với mã VNI, ABC-TCVN 5712, đâu có Microsoft hỗ trợ tiếng Việt mức hệ điều hành, không bị ảnh hưởng máy, CNTT tiến triển tốt Thêm có hỗ trợ tiếng Việt mức thấp API (giống Windows) đơn vị nước Tạo Ebook: Nguyễn Kim Vỹ Nguồn truyện: vnthuquan.net Đặng Minh Tuấn Mã dựng sẵn mã tổ hợp thực đáp ứng đầy đủ yêu cầu xử lý tiếng Việt tầng thấp VietkeyGroup xây dựng thư viện Vietkey API cho phép xử lý hầu hết vấn đề tiếng Việt: tìm kiếm, xếp, chuyển đổi chữ hoa, chữ thường, chuyển mã, kiểm tra tả tiếng Việt mức hệ thống, nhúng nhiều ứng dụng cơng cụ lập trình mơi trường Windows Vietkey API xử lý tiếng Việt số góc cạnh đầy đủ hồn hảo hỗ trợ từ mức hệ điều hành Windows Tóm lại mã dựng sẵn với nhiều ưu điểm trơi đáp ứng nhu cầu trước mắt lâu dài sử dụng nhiều lĩnh vực : chế văn phòng, web, email, sở liệu nhiều lĩnh vực khác, theo ý kiến nên chọn mã dựng sẵn, tổ hợp dùng số tốn đặc thù phân tích chuỗi ký tự hay để biểu diễn hình chữ cho dấu UNICODE VÀ TCVN 6909 Trước tiên cần phải nêu rõ mối quan hệ Unicode TCVN6909 TCVN6909 tập Unicode, chọn lọc kỹ lưỡng để lấy ký tự dùng ngôn ngữ Việt TCVN6909 quy định rõ ràng tính đơn trị một-một cao Unicode Ví dụ Unicode có đến chữ Đ , dấu nặng không quy định rõ gây nhầm lẫn, mà thực tế xảy nhầm lẫn chữ Đ gõ Unicode : Vps Việt Kiều Pháp TCVN 6909 chứa tất ký tự dựng sẵn có đầy đủ mã để hiển thị cho dấu thanh, mã cho việc biểu diễn dấu tổ hợp nguyên âm, TCVN 6909 mã đầy đủ ( có mã cho tất thành phần tiếng Việt) TCVN 6909 không quy định biểu diễn dựng sẵn hay tổ hợp Vì nói TCVN6909 mã dựng sẵn khơng xác TCVN 6909 kế thừa ưu điểm mã Unicode ISO10646, hồn tồn cho phép hội nhập tiếng Việt với ngôn ngữ khác cộng đồng Unicode Hiện đa số ứng dụng phổ thông đa hỗ trợ Unicode : phần mềm văn phòng, sở liệu, web, e-mail nhiên số phần mềm chuyên ngành chưa hỗ trợ Unicode Vấn đề kỹ thuật Unicode khôngchỉ gõ Unicode (như số người lầm tưởng) mà loạt vấn đề khác, đặc biệt công cụ chuyển mã cho văn liệu (MSoffice,Webpages,Database ) chuyển mã vấn đề lớn nhiều, khối lượng liệu cần chuyển đổi sang Unicode lớn, đa dạng khuôn thức loại hình, chủng loại Ngồi vấn đề xếp, chuyển đổi chữ hoa, chữ thường, tìm kiếm tồn văn, kiểm tra tả tiếng Việt, đặc biệt hỗ trợ mức lập trình cho cơng cụ phát triển điều cần thiết (hiển thị, lưu trữ ) Vietkey Group năm qua đơn vị tiên phong vấn đề xử lý tiếng Việt Unicode, khơng có gõ đa ngữ Unicode Vietkey2000 mà có cơng cụ khác Vietkey Office tích hợp biến MS Office chuẩn thành Office có tính xử lý tiếng Việt (kiểm tra tả, xếp, chuyển chữ hoa/thường cho tiếng Việt chuyển mã ) Trong Tạo Ebook: Nguyễn Kim Vỹ Nguồn truyện: vnthuquan.net Đặng Minh Tuấn Mã dựng sẵn mã tổ hợp cơng cụ Vietkey có chuyển mã cho toàn website, CSDL Oracle, SQL Server, Access sang Unicode Về hỗ trợ tiếng Việt mức hệ thống, Vietkey Group có thư viện Vietkey API cho phép so sánh xâu ký tự Việt, chuyển đổi chữ hoa/thường, xếp tiếng Việt chuyển mã kiểm tra tả tiếng Việt Các cơng cụ nhúng nhiều ứng dụng công cụ lập trình Hệ thống Vietkey Messenger ATOL VietkeyGroup phát triển hỗ trợ Unicode môi trường, từ Windows 95 XP, tất thành phần: Email, chat, Forum, FTP hiển thị xử lý tiếng Việt Unicode Cuối cùng, nói chuyển đổi sang Unicode việc làm cần thiết phải làm sớm tốt, để chậm, kho liệu, website ngày phát triển với liệu lớn thì trình chuyển mã sau phức tạp, tốn nhiều công sức tiền Vấn đề Unicode, không gõ, mà phải nghĩ loạt cơng cụ đằng sau chuyển mã hỗ trợ tiếng Việt mức hệ thống, ứng dụng nhiều môi trường khác Dưới minh hoạ cho lệch lạc dấu mã tổ hợp, dòng soạn mã tổ hợp, dòng soạn mã dựng sẵn, dùng font chữ Verdana, hệ điều hành Windows XP (là hệ điều hành Microsoft), đoạn text soạn MS PowerPoint 2000 (bộ soạn thảo văn phòng MS Office 2000), dòng cuối soạn WordArt Office 2000 Windows XP Tất đoạn text chưa qua hiệu ứng text , mà chữ dấu bị lệch xa rời mã dựng sẵn hiển thị đẹp Hiện tượng bị phổ biến với tất ứng dụng (kể Word XP, Excel XP ) chạy hệ điều hành Windows 95,98 Lời cuối: Cám ơn bạn theo dõi hết truyện Nguồn: http://vnthuquan.net Phát hành: Nguyễn Kim Vỹ Nguồn: Thái Nhi Được bạn: Thành Viên VNthuquan đưa lên vào ngày: 27 tháng 12 năm 2003 Tạo Ebook: Nguyễn Kim Vỹ Nguồn truyện: vnthuquan.net .. .Mã dựng sẵn mã tổ hợp Đặng Minh Tuấn Dựng sẵn 1EAB Tổ hợp ư+ 01B0,0300 Chính tắc u++ 0075,031B,0300 Mã dựng sẵn mã tổ hợp q trình mã hóa ký tự thành ký tự dựng sẵn hay thành ký tự tổ hợp. .. vnthuquan.net Đặng Minh Tuấn Mã dựng sẵn mã tổ hợp hàng ngày có gần triệu lượt truy nhập chứng tỏ số lượng người dùng mã dựng sẵn lớn, website dùng mã tổ hợp ƯU VÀ NHƯỢC CỦA MÃ DỰNG SẴN Những ưu... nhược điểm mã dựng sẵn phân tích kỹ song song trình phân tích ưu nhược điểm mã tổ hợp Tôi xin tổng kết lại cách tóm tắt: mã dựng sẵn khơng bị nhược điểm mã tổ hợp, file sử dụng mã dựng sẵn tốn khơng