Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 94 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
94
Dung lượng
2,18 MB
Nội dung
ĐẠI HỌC QUỐC GIA TP HỒ CHÍ MINH TRƯỜNG ĐẠI HỌC BÁCH KHOA TRƯƠNG NGỌC TUẤN ĐỀ TÀI LUẬN VĂN THẠC SĨ : Xây dựng browser hiển thị nội dung tiếng Việt trang web tiếng Việt sử dụng bảng mã Chuyên ngành : Công nghệ thông tin Mã ngành : 01.02.10 LUÂÄN VĂN THẠC SĨ TP HỒ CHÍ MINH, THÁNG NĂM 2003 Người hướng dẫn : Tiến só Nguyễn Văn Hiệp Khoa Công nghệ thông tin Trường Đại học Bách Khoa TPHCM Người phản biện : Tiến só Cao Hoàng Trụ Khoa Công nghệ thông tin Đại học Bách khoa TPHCM Tiến só Đỗ Phúc Trung tâm Phát triển Công nghệ thông tin Đại học Quốc gia TPHCM Đại Học Quốc Gia Tp Hồ Chí Minh TRƯỜNG ĐẠI HỌC BÁCH KHOA CỘNG HÒA XÃ HỘI CHỦ NGHĨA VIỆT NAM Độc Lập - Tự Do - Hạnh Phúc NHIỆM VỤ LUẬN VĂN THẠC SĨ Việt Họ tên học viên : Trương Ngọc Tuấn Phái : Nam Ngày tháng năm sinh : 07 tháng 08 năm 1960 Nơi sinh : Sài Gòn Chuyên ngành : Công Nghệ Thông Tin Mã số : 01 02 10 I- TÊN ĐỀ TÀI : Xây dựng browser hiển thị nội dung tiếng trang web tiếng Việt sử dụng bảng mã II– NHIỆM VỤ VÀ NỘI DUNG : - Nghiên cứu phân tích mã nguồn mở Mozilla - Thiết kế giải thuật phát chuyển đổi mã chữ Việt sang Unicode - Tích hợp chức phát chuyển đổi mã vào Mozilla - Hiện thực môi trường Mozilla III- NGÀY GIAO NHIỆM VỤ : IV- NGÀY HÒAN THÀNH NHIỆM VỤ : 30/09/2003 V- HỌ VÀ TÊN CÁN BỘ HƯỚNG DẪN : Tiến Só Nguyễn Văn Hiệp CÁN BỘ HƯỚNG DẪN CHỦ NHIỆM NGÀNH BỘ MÔN QUẢN LÝ NGÀNH Nội dung đề cương luận văn thạc só Hội Đồng Chuyên Ngành thông qua Ngày tháng năm PHÒNG ĐÀO TẠO SĐH KHOA QUẢN LÝ NGÀNH Lời cám ơn ♥ Tôi chân thành bày tỏ lòng tri ân với Tiến só Nguyễn Văn Hiệp, người Thầy tận tình hướng dẫn giúp đỡ suốt thời gian thực luận án ♥ Tôi chân thành cám ơn Thầy Tiến só Cao Hoàng Trụ Thầy Tiến Só Đỗ Phúc bỏ nhiều thời gian bổ sung cho ý kiến quý báu để hoàn thiện luận án ♥ Tôi xin bày tỏ lòng biết ơn với Tiến só Dương Tuấn Anh, người Thầy theo dõi, hướng dẫn giúp đỡ, đồng thời tạo điều kiện thuân lợi thời gian để hoàn thành luận án ♥ Cuối xin bày tỏ lời cám ơn chân thành đến tất Thầy, Cô truyền đạt cho kiến thức suốt học phần Cao học từ 1999-2002 TÓM TẮT Ngày nay, với phát triển công nghệ thông tin, nhu cầu sử dụng máy tính đời sống hàng ngày phổ biến Các website Internet trở thành phương tiện hiệu cho việc trao đổi thông tin Nhiều tổ chức, doanh nghiệp, cá nhân tạo website riêng cho Tuy nhiên, khía cạnh khác, điều lại dẫn đến tình trạng phiền toái là, website tiếng Việt không sử dụng thống bảng mã chữ Việt nên gây khó khăn cho người xem Để hiển thị ký tự chữ Việt, máy người xem cần phải có cài bảng mã chữ Việt font chữ dùng trang web Điều thực khó khăn cho người xem thông thường họ bảng mã dùng trang web bảng mã Đây bế tắc cho người xem Vì thế, mục đích luận án xây dựng browser giúp cho người xem tránh tình trạng này, tức tự động hiển thị trang web tiếng Việt cho dù bảng mã sử dụng bảng mã nào, không cần đòi hỏi máy người xem phải có cài bảng mã Hơn nữa, browser lại có tính độc lập môi trường nên ứng dụng nhiều hệ điều hành Browser xây dựng dựa Mozilla, browser có mã nguồn mở phiên Netscape Navigator Nội dung luận văn nghiên cứu chế hoạt động Mozilla, đặt biệt chế phân tích giải mã, để sau phân tích thiết kế engine tích hợp vào Mozilla có tính tự động phát mã chữ Việt chuyển đổi sang mã Unicode để hiển thị Mozilla Font chữ Việt chuyển cho thích hợp với mã Unicode Với browser người xem thoải mái duyệt website tiếng Việt mà lo lắng bảng mã chữ Việt mà trang web sử dụng trước ABSTRACT Nowadays, as the information technology grows more and more, the need of using computer comes more and more popular in Vietnam Web sites in the Internet gradually become a potential means for information exchanges Many organizations, businesses, and individuals have their own websites But on the other side, it emerges a really annoyed problem: as the character sets used in Vietnamese web pages are not unique, so it is difficult for the viewers to make them correctly showned on their browser It requires the viewers to have the appropriate character set, or more precisely, the appropriate fonts, installed on their computers to view the web page correctly It is really difficult for the viewers to that, because in general, they don’t, or they can’t, know what character set and what fonts being used in the web page And in the worse cases, the viewers don’t know where to find the appropriate character set code and how to install it on their computer They will really be stuck in this problem So, the intention of this thesis is to build a browser that can help the viewer to avoid the problem above, that is, a browser that can automatically and correctly show any Vietnamese web page regardless of the Vietnamese character set used in that page, and does not have any additional requirement for the viewer Moreover, to be widely applied, this browser will be designed to be portable The browser will be built based on Mozilla, the open-source version of Netscape Navigator This thesis will inspect the mechanism of Mozilla, particularly the mechanism of parsing, then analyzes and gives a design for a Vietnamesesupported engine that will automatically detect the Vietnamese character set and will convert Vietnamese characters, as well as the font they use, into Unicode characters under an appropriate font With this browser, the user can navigate from one Vietnamese web page to another Vietnamese web page with no worry about the character set and the fonts they use The only thing they need is the browser, and no additional character set required to be installed The users will get totally comfortable with this browser when they navigate around the Internet MỤC LỤC Chương Mục tiêu nội dung đề tài Chương Những vấn đề nghiên cứu có liên quan 2.1 Các bảng mã chữ Việt mã Unicode 2.2 Mô tả sơ lược ngôn ngữ HTML XML Chương Phân tích tìm hiểu mã nguồn Mozilla 3.1 Tìm hiểu chế hoạt động Mozilla 3.2 Mô tả tổng quát trình hiển thị trang web Mozilla 3.3 Mô tả tổng quát việc phân tích giải mã Mozilla 3.4 Khảo sát chi tiết chế phân tích cú pháp Mozilla 3.5 Các dạng chuỗi dùng Mozilla 3.6 Đối tượng iterator hàm xử lý chuỗi thường dùng Chương Thiết kế giải thuật 4.1 Phát chuyển đổi mã tiếng Việt 4.2 Chuyển đổi font tiếng Việt cho thích hợp 14 24 29 33 37 39 41 43 69 Chương Hiện thực chương trình 75 Chương Kết luận 86 Chương Mục tiêu nội dung đề tài I Mục tiêu nội dung đề tài Ngày nay, Việt Nam nhu cầu sử dụng Internet ngày tăng Ngày nhiều trang web với nội dung tiếng Việt đưa lên mạng Các trang web tiếng Việt soạn thảo nhiều cá nhân, quan, tổ chức khác Và vậy, việc sử dụng mã tiếng Việt để biên soạn trang web tùy tiện, chưa có quy định thống Đa số trang web thường sử dụng mã chữ Việt VNI TCVN3 Gần đây, nhiều trang web tiếng Việt chuyển sang dùng mã Unicode Lại có số trường hợp nhiều mã chữ Việt dùng chung lẫn lộn trang web Điều dẫn đến tình trạng phiền toái cho người truy cập để hiển thị nội dung tiếng Việt trang web, máy người xem phải cài sẵn mã chữ Việt phải có font chữ Việt dùng cho trang web đó, người xem phải biết chọn giá trị thích hợp cho setting browser (option Font menu Tools người xem dùng browser Internet Explorer ) Do đó, người xem chuyển từ trang web sang trang web khác vấn đề lại đặt cho người xem máy có sẵn mã font chữ dùng trang web hay không Khó khăn cho người xem phải biết trang web xem sử dụng mã chữ Việt font Điều khó khăn lớn cho người xem trang web tiếng Việt không cho biết mã sử dụng mã Như vậy, để xem trang web tiếng Việt, người xem thường gặp phải hai trở ngại trước hết phải biết mã sử dụng cho trang web xem mã nào, sau phải đảm bảo mã chữ Việt cài máy setting browser phù hợp Để cải thiện điều này, có số biện pháp Luận án tốt nghiệp cao học - Trương Ngọc Tuấn Chương Mục tiêu nội dung đề tài • Người soạn thảo trang web dùng chương trình tiện ích WEFT (Web Embedded Font Tool) Microsoft để tích hợp font chữ Việt cần thiết vào trang web Nhờ vậy, trang web tải máy người xem font cần thiết cho trang web tải Và đó, cho dù trước máy người xem font yêu cầu trang web hiển thị chữ Việt Tuy nhiên biện pháp có tác dụng giới hạn cho số trang web tiếng Việt có tích hợp font chữ Việt, trang web tiếng Việt khác cuối người xem phải tự giải lấy vấn đề hiển thị chữ Việt cho trang web • Một biện pháp khác để tránh khó khăn cho người xem việc cho hiển thị chữ Việt, trang web tiếng Việt có khuynh hướng chuyển sang dùng mã Unicode Biện pháp có nhiều triển vọng tương lai mã Unicode tích hợp vào hệ điều hành Windows từ 98 trở lên, Unicode, chữ tiếng Việt định nghóa sẵn nằm chữ la tinh Nhờ nên browser hệ điều hành Windows 98 trở lên hiển thị chữ tiếng Việt dùng mã Unicode mà không cần phải cài đật thêm Một trở ngại nhỏ cho biện pháp chưa có thống việc chọn cách biểu diễn ký tự chữ Việt mã Unicode có hai dạng thường dùng để biểu diễn ký tự Unicode UCS-2 UTF-8 Thế cho dù có dùng mã Unicode cho trang web tiếng Việt cách giải cho trang web sau này, trang web tiếng Việt xây dựng trước (không dùng mã Unicode) người xem gặp phiền toái việc cho chúng hiển thị tiếng Việt • Giải pháp thứ ba người xem dùng phần mềm hổ trợ tiếng Việt Web-eye Các phần mềm cho khởi động trước khởi động browser, giúp người xem đọc chữ Việt trang web Một hạn chế phần mềm sử dụng số hệ điều hành định, đồng thời làm giảm bớt tài nguyên máy đáng kể phải thường xuyên xử lý ký tự kết xuất hình Luận án tốt nghiệp cao học - Trương Ngọc Tuấn Chương Mục tiêu nội dung đề tài Vì vậy, để khắc phục điều bất tiện trên, với mục đích cố gắng tìm giải pháp tốt hơn, nên nội dung luận án xây dựng browser có tính “trong suốt” với font tiếng Việt, nhằm giúp cho người truy cập Internet thoải mái xem trang web tiếng Việt, lo âu mã chữ Việt dùng trang web mã nào, font chữ dùng trang web font Hơn nữa, người xem không cần phải thực thao tác khai báo phức tạp Ngoài ra, browser xây dựng tinh thần không phụ thuộc vào hệ điều hành máy sử dụng Do dùng cho máy chạy Windows lẫn Unix, Linux MacinTosh Để thực mục đích này, hướng tiến hành luận án dựa vào mã nguồn mở Mozilla Mozilla browser, tảng Netscape Navigator, với tính độc đáo không phụ thuộc hệ điều hành, mã nguồn Mozilla mã nguồn mở, bổ sung, cập nhật quản lý tổ chức có tên Mozilla Do vậy, tận dụng mã nguồn Mozilla rút ngắn quãng đường dài cho luận án Vì vậy, nhiệm vụ lại bổ sung thêm chức xử lý mã chữ Việt vào browser Mozilla Luận án tốt nghiệp cao học - Trương Ngọc Tuấn Chương Hiện thực chương trình Trường hợp trang web sau sử dụng mã tiếng Việt VietwareX Trang web dùng mã tiếng Việt unicode : Luận án tốt nghiệp cao học - Trương Ngọc Tuấn 77 Chương Hiện thực chương trình Ngoài ra, browser hỗ trợ nhiều font chữ khác cho mã tiếng Việt Sau thí dụ điển hình Trang web dùng mã TCVN3 với font VnAvant : Luận án tốt nghiệp cao học - Trương Ngọc Tuấn 78 Chương Hiện thực chương trình Cũng trang web này, với font VnCentury Schoolbook : Và trang web với font VnTime : Luận án tốt nghiệp cao học - Trương Ngọc Tuấn 79 Chương Hiện thực chương trình Tiếp theo trang web dùng mã tiếng Việt VNI với font VNI-Book : Luận án tốt nghiệp cao học - Trương Ngọc Tuấn 80 Chương Hiện thực chương trình Cũng trang web đó, với font VNI-Centur : với font VNI-Helve : Luận án tốt nghiệp cao học - Trương Ngọc Tuấn 81 Chương Hiện thực chương trình Trang web với font chữ VNI-Zap : Tiếp theo trang dùng mã tiếng Việt BKHCM2 với font VnTimes2 : Luận án tốt nghiệp cao học - Trương Ngọc Tuấn 82 Chương Hiện thực chương trình Cũng trang trên, đổi font chữ VnBookman2 Trang web trên, với font chữ lại VnPalatino2 Luận án tốt nghiệp cao học - Trương Ngọc Tuấn 83 Chương Hiện thực chương trình Trang web lại dùng mã unicode, với font Lucida Luận án tốt nghiệp cao học - Trương Ngọc Tuấn 84 Chương Hiện thực chương trình Và với font New Century Schoolbook, trang web hiển thị sau : Luận án tốt nghiệp cao học - Trương Ngọc Tuấn 85 Chương Hiện thực chương trình Phần trình bày số hình ảnh minh họa điển hình cho phần thực chương trình Những thí dụ điển hình phản ánh đầy đủ hết tất trường hợp thử nghiệm browser Luận án tốt nghiệp cao học - Trương Ngọc Tuấn 86 Chương Kết luận VI Kết luận Trên trình bày qua cách chi tiết giai đoạn tiến trình xây dựng web browser, nói xác cải tiến browser Mozilla, để có browser theo yêu cầu ban đầu tự động hiển thị nội dung chữ Việt cho trang web sử dụng mã chữ Việt Để có nhìn tổng hợp nội dung luận án, tóm tắt lại sau : Chức phát mã chữ Việt chuyển đổi sang mã Unicode Mozilla giao cho hàm Consume() lớp nsTextToken thực hiện, trình phân tích giải mã Hàm thực phần lớn công việc nhờ vào hàm VNConvert2(), hàm bổ sung vào lớp nsCTokens lớp nsHTMLToken cụ thể Và để tăng cường độ xác việc chuyển đổi mã, trøng hợp trang web sử dụng bảng mã nhất, đối tượng Tokenizer bổ sung thêm chức chuyển đổi mã cho nội dung tất text token TokenDeque, trước xây dựng mô hình nội dung trang web Nhờ vậy, kết chuyển đổi mã cho trang web dùng bảng mã gần 100% Đồng thời, menu Vietnamese Support bổ sung vào giao diện browser cho phép người xem chọn hai cách để chuyển mã : multi character set (cục bộ, token chọn bảng mã) mono character set (chọn bảng mã cho toàn trang web) Việc bổ sung thêm menu vào browser thực đoạn code XUL tập tin navigationOverlay.xul kết hợp với script JavaScript navigation.js Mặt khác, số đối tượng COM sửa đổi cho phù hợp nsIDocumentInfo, nsHTMLDocument Ngoài ra, Mozilla tăng cường thêm chức chuyển đổi font chữ Việt cho thích hợp Chức thực qua hàm Luận án tốt nghiệp cao học - Trương Ngọc Tuấn 86 Chương Kết luận MapFontForDeclaration VNFontConvert() lớp nsCSSStyleRule Bộ font Unicode sử dụng luận án font lấy từ phần mềm GVSBK 2.1 Cuối cùng, có browser đạt theo yêu cầu ban đầu, nhiên phải cần nhiều thời gian để thử nghiệm nhiều kết luận giá trị thực tiễn browser này, vấn đề hiển thị font chữ Ngay phiên Mozilla, việc hiển thị font chữ có lỗi Một thí dụ điển hình lỗi Bug 46415 Mozilla, lỗi thể tượng font arial nhìn thấy nhỏ khó đọc font helvetica có size Cho đến lỗi chưa giải Mậc dù chương trình gây hiệu ứng phụ chưa phát hiện, kết đạt khẳng định cho hướng giải tốt hiệu cho vấn đề khó khăn đọc chữ Việt trang web xuất phát từ nhiều nguồn khác nhau, ban đầu đề cập tới Hơn nữa, Mozilla phần mềm không phụ thuộc môi trường nên hướng giải hứa hẹn khà ứng dụng rộng rãi Mặt khác, nói Mozilla học điển hình cho việc ứng dụng lý thuyết lập trình hướng đối tượng, với ưu điểm lớn mã nguồn mở Vì vậy, Mozilla cung cấp nhiều kinh nghiệm có giá trị thực tiễn cao để hỗ trợ cho học lý thuyết lập trình hướng đối tượng, đặc biệt sâu vào chế hoạt động XPCOM, XPConnect, việc định nghóa vận dụng giao diện Bên cạnh đó, Mozilla cung cấp cho ta nhiều kinh nghiệm lập trình XML nói chung, XUL nói riêng Đây hướng phát triển cho ứng dụng web Đồng thời, dịp để làm quen với XPCOM, tảng để phát triển ứng dụng độc lập môi trường web Cũng cần phải nói rằng, hạn chế thân, cộng thêm phức tạp quy mô hệ thống, chương trình không tránh khỏi chỗ dư thừa, chưa hoàn hảo Mong qua thời gian chỗ chưa hoàn hảo khắc phục Hướng mở rộng phát triển tương lai đề tài là, trước tiên cải thiện thuật giải so trùng ký tự bảng để nâng cao tốc độ cho Luận án tốt nghiệp cao học - Trương Ngọc Tuấn 87 Chương Kết luận chương trình Tiếp theo, luận án mở rộng để tự động hiển thị chữ Việt chức hỗ trợ khác Mozilla mail, chat Hướng mở rộng hoàn toàn thực thi thời gian cho phép Tài liệu tham khảo [1] Kris Jamsa, Ken Cope (1995), Internet programming, Jamsa press [2] W.Richard Stevens (1990), Unix network programming, Prentice Hall [3] Herbert Schildt (1991), C++: The complete conference, Osborne McGraw-Hill Luaän án tốt nghiệp cao học - Trương Ngọc Tuấn 88 Chương Kết luận [4] Nguyễn Phương Lan (2001), XML, tảng & ứng dụng, Nhà xuất Giáo dục [5] Nguyễn Phương Lan & Hoàng Đức Hải (2001), Lập trình Linux tập 1, Nhà xuất Giáo dục [6] Wall, Kurt (1999), Linux programming unleashed, Indianapolis [7] Prata, Stephen (1995), C++ Primer Plus, Publishers Group West, Waite Group Press [8] Shapiro, Jonathan S (1991), A C++ tool kit, Prentice-Hall [9] Ian Oeschger, 05/04/2001, XUL Programmer’s Reference Manual, web site www.mozilla.org [10] Markus Kuhn, 09/07/2003, UTF-8 and Unicode FAQ, web site www.mozilla.org [11] Alec Flett, 03/06/2003, Guide to Mozilla string classes, web site www.mozilla.org [12] Roman Czyborra, 11/01/1999, The Unicode Standard, web site www.mozilla.org [13] Alec Flett, 13/05/2003, IDL interface rules, web site www.mozilla.org [14] Rick Parrish, 01/02/2001, An introduction to XPCOM, web site www.mozilla.org [15] Rick Parrish, 01/03/2001, XPCOM component basics, web site www.mozilla.org [16] Rick Parrish, 01/03/2001, Setting up XPCOM, web site www.mozilla.org [17] Will Scullin, 25/02/1998, Modularization Techniques, web site www.mozilla.org [18] Doug Turner, 26/06/2000, nsISupports Proxies, web site www.mozilla.org [19] Mike Shaver, 15/02/2002, JavaScript XPCOM components status, web site www.mozilla.org [20] jband@netscape.com, 01/07/1999, XPJS Components proposal, web site www.mozilla.org [21] John Bandhauer, 12/08/1998, XPConnect interface plans, web site www.mozilla.org [22] Fabian Guisset, 29/05/2001, The DOM and JavaScript, web site www.mozilla.org Luận án tốt nghiệp cao học - Trương Ngọc Tuấn 89 Chương Kết luận [23] Rick Parrish, 01/03/2001, XPCOM component basics, web site www.mozilla.org Luaän án tốt nghiệp cao học - Trương Ngọc Tuấn 90 ... Nghệ Thông Tin Mã số : 01 02 10 I- TÊN ĐỀ TÀI : Xây dựng browser hiển thị nội dung tiếng trang web tiếng Việt sử dụng bảng mã II– NHIỆM VỤ VÀ NỘI DUNG : - Nghiên cứu phân tích mã nguồn mở Mozilla... việc sử dụng mã tiếng Việt để biên soạn trang web tùy tiện, chưa có quy định thống Đa số trang web thường sử dụng mã chữ Việt VNI TCVN3 Gần đây, nhiều trang web tiếng Việt chuyển sang dùng mã Unicode... dù có dùng mã Unicode cho trang web tiếng Việt cách giải cho trang web sau này, trang web tiếng Việt xây dựng trước (không dùng mã Unicode) người xem gặp phiền toái việc cho chúng hiển thị tiếng