PDA

View Full Version : ASP, Unicode và MS Access



ChinDangShun
17-09-2002, 23:21
<B>Có nhiều bạn đang thắc mắc về việc sử dụng Unicode trong các trang ASP. Hôm nay tôi xin đăng một số tip về vấn đề này. Hy vọng nó sẽ có ích trong việc thiết kế các site có sử dụng ASP của các bạn:</B>

Để hiển thị đầy đủ thông tin tiếng Việt trên các trang Web sử dụng công cụ IIS và ASP của Microsoft với kịch bản như sau:
- Nguồn dữ liệu MS Access 2000 (hỗ trợ UNICODE hoàn hảo)
- Hệ thống Internet Information Services được cài đặt trên máy tính (trên Windows 9x được gọi là Personal Web Server - 1 tập con của IIS chạy trên máy chủ; trên Windows NT/2000 thì được gọi là IIS 4.0 hoặc 5.0)
- ASP được cài đặt đầy đủ nhất (include trong IIS).

<U>Phía Client:</U> Cần có Browser IE4.x, IE5.x, IE6.0 hoặc Netscape 4.5 trở lên.

<U>Phía Server:</U>
UTF-8 là một encoder/decoder phổ biến trên các trình duyệt hiện tại. Nó biến đổi các ký tự 16 bit (UNICODE) thành tập hợp các ký tự 8bit. Nhờ một quy tắc chung, các tập hợp UTF-8 sẽ được dịch xuôi và ngược trong suốt quá trình lưu trữ dữ liệu/hiển thị dữ liệu.

1. Để hiển thị UNICODE trên một trang Web tĩnh (cũng như ASP), bạn thêm thẻ:
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"> vào dưới thẻ <HEAD>. Mục đích là hiển thị tất cả các ký tự HTML từ dạng UTF-8 thành Unicode trên trình duyệt. Ví dụ:
<HTML>
<HEAD><TITLE>Test UTF-8 vs. UNICODE</TITLE>
</HEAD>
<BODY>
Cộng hoà xã hội chủ nghĩa Việt nam
</BODY>
</HTML>

2. Để cơ chế ASP hiểu và hiển thị đúng các ký tự UNICODE dạng UTF-8, bạn thêm một ASP directive vào ngay đầu tiên của trang ASP ấy:
<%@ Codepage = 65001 %>
Với 65001 là số hiệu bảng mã UNICODE dạng UTF-8. VD:
<%@ Codepage = 65001 %>
<HTML>
<HEAD><TITLE>Test UTF-8 vs. UNICODE</TITLE>
</HEAD>
<BODY>
Cộng hoà xã hội chủ nghĩa Việt nam
<% = "Độc lập - Tự do - Hạnh phúc" %>
.........
<% = Rs("HovaTen") %>
</BODY>
</HTML>

3. Do file ASP chứa các ký tự UNICODE dạng UTF-8 nên nó cần phải được lưu dưới dạng UTF-8. Bạn có thể sử dụng rất nhiều chương trình Edit ASP để thực hiện điều này ! Frontpage 2000, Dream Weaver, Visual Interdev 6.0, Notepad trong Windows 2000 Pro/Server ...

Hiện tại tôi đã thực hiện được việc hiển thị UNICODE dạng UTF-8 trên Windows 2000 Server với 3 điều kiện trên và với NotePad (hỗ trợ lưu dưới dạng UTF-8).

Bạn có thể tham khảo MSDN, www.vovisoft.com, vietunicode.sourceforge.net để biết chi tiết các hệ mã UNICODE và cách thức xoay sở !

Chúc thành công.