Bài 2
1
BÀI THAM KHẢO
Lập trình ASP với Unicode
Khoa CNTT - ĐHKHTN
Bài 2
2
Khoa CNTT - ĐHKHTN
Nội dung
1. Các khái niệm về biểu diễn ký tự trong
máy tính
2. Lập trình Web với tiếng việt Unicode
3. Hỗ trợ Unicode của các phần mềm
4. Tổng kết
Bài 2
3
Khoa CNTT - ĐHKHTN
1. Các khái niệm (1)
Điểm mã – code point: mỗi ký tự được gán
bởi 1 số nguyên không âm
Đơn vị mã – code unit: đơn vị bộ nhớ lưu trữ
1 điểm mã (8, 16, 32,…)
Bảng mã – code page: tập hợp những điểm
mã của một tập ký tự, gọi là trang mã, bảng
mã, bộ mã.
Bài 2
4
Khoa CNTT - ĐHKHTN
1. Các khái niệm(2)
VD Bảng mã ASCII
Tập ký tự : 0-31 : ký tự điều khiển, 32-127: ký tự
ASCII (chữ, số, …)
Điểm mã: 0 – 127 ứng với từng ký tự
Đơn vị mã: 1 byte (8 bit). Mỗi điểm mã mã hóa
bởi 1 đơn vị mã
Bài 2
5
Khoa CNTT - ĐHKHTN
1. Các khái niệm(3)
Bảng mã ASCII mở rộng (128-255) mã hóa cho các
ngôn ngữ khác
Code
Page
1250 1252 1258 …
Upper 128 Eastern
Europe
West Euro
Ansi
Vietnamese
…
Lower 128 ASCII ASCII ASCII
…
Bài 2
6
Khoa CNTT - ĐHKHTN
1. Các khái niệm(3)
Biểu diễn Tiếng Việt tổ hợp - decomposed
(trong bảng mã Vietnamese 1258)
Các từ có dấu tổ hợp từ CHỮ CÁI + THANH
Ví dụ : ế = ê + ́
Biểu diễn Tiếng Việt dựng sẵn -precomposed
Mỗi ký tự tiếng việt “ế” biểu diễn đúng bởi 1 điểm
mã (TCVN3-ABC dùng 134 điểm mã)
Bài 2
7
Khoa CNTT - ĐHKHTN
1. Các khái niệm(4)
Bảng mã Unicode
Thống nhất mọi ngôn ngữ trong 1 bảng mã
Trên 1 tài liệu có thể biểu diễn nhiều ngôn ngữ
khác nhau
Các vấn đề
Tập ký tự do Unicode biểu diễn
Cách mã hóa các điểm mã, đơn vị mã
Bài 2
8
Khoa CNTT - ĐHKHTN
1. Các khái niệm(5)
Cách tổ chức 1
Mỗi điểm mã biểu diễn bởi 1 đơn vị mã 16 bit
Số lượng điểm mã : 65536 (0 – 65535)
⇒ Là phiên bản Unicode nguyên thủy : UCS-2
Các biến đổi của Unicode – UTF
Cách biểu diễn các điểm mã theo các đơn vị mã
khác nhau
UTF-8 : 1-4 đơn vị mã 8 bit
UTF-16: 1-2 đơn vị mã 16 bit
Bài 2
9
Khoa CNTT - ĐHKHTN
1. Các khái niệm(6)
Cách tổ chức UTF-8
128 kí tự đầu tiên từ điểm mã U+0000 đến
U+007F, được mã hóa thành 1 byte.
Từ điểm mã U+0080 đến U+07FF, được mã hóa
thành 2 byte.
Từ điểm mã U+0800 đến U+FFFF, được mã hóa
thành 3 byte.
Từ điểm mã U+0800 đến U+FFFF, được mã hóa
thành 4 byte.
=> Khi lập trình phải xác định rõ là Unicode nào
UCS-2, UTF-8, UTF-16,…
Bài 2
10
Khoa CNTT - ĐHKHTN
2. Lập trình web Tiếng Việt với
Unicode(1)
Chỉ định bảng mã trong trang Web
<META HTTP-EQUIV="Content-Type" CONTENT="text/html;
CHARSET=windows-1252">
<META HTTP-EQUIV="Content-Type" CONTENT="text/html;
CHARSET=UTF-8">
Sử dụng số tham chiếu ký tự NCR
Cách biểu diễn : å và å
VD: trong bảng mã windows-1252
“Tiếng Việt” -> Tiếng Việt
Bài 2
11
Khoa CNTT - ĐHKHTN
2. Lập trình web Tiếng Việt với
Unicode(2)
Hoạt động của WebServer
Trả dữ liệu về Client :
<%Response.Write “hằng chuỗi” %>
<%Response.Write Rs(“Field”) %>
Yêu cầu webserver mã hóa dữ liệu và chuyển theo
bảng mã
<%Session.CodePage=65001%> // Dùng cho toàn bộ các
trang trong Session hiện hành
<%@CodePage=65001%> // Dùng cho trang hiện hành
Bài 2
12
Khoa CNTT - ĐHKHTN
2. Lập trình web Tiếng Việt với
Unicode(3)
Các bước thực hiện trong lập trình ASP
Soạn và lưu trữ tập tin .asp dưới mã hóa UTF-8
Chỉ định bảng mã cho server xử lý trong đầu trang ASP
<%@CODEPAGE=65001%>
<%Session.Codepage=65001%>
<HTML>
<HEAD>
<META HTTP-EQUIV="Content-Type" CONTENT="text/html;
CHARSET=UTF-8">
</HEAD>
<BODY>
</BODY>
</HTML>
Bài 2
13
Khoa CNTT - ĐHKHTN
2. Lập trình web Tiếng Việt với
Unicode(4)
Các bước thực hiện trong lập trình ASP
Sử dụng các HQT CSDL có hỗ trợ Unicode
SQL Server 7/2000, Ms Access 2000,…
Lưu ý khi sử dụng SQL Server 7/2000
Kiểu dữ liệu Unicode : NCHAR, NVARCHAR, NTEXT,…
Khi sử dụng chuỗi hằng thêm N” …. “
N”Chuỗi hằng Unicode”
Bài 2
14
Khoa CNTT - ĐHKHTN
3. Các phần mềm hỗ trợ Unicode
Soạn thảo : Notepad, FrontPage 2002, Visual
Studio.Net, DreamWeaver MX 2004,…
Phần mềm gõ tiếng Việt : Unikey, Vietkey,…
IIS 5.0 không thể đọc được các tập tin lưu dưới
dạng UCS-2, không hỗ trợ CodePage của bảng
mã UTF-16 là 1200
IIS 4.0 không hỗ trợ CodePage của bảng mã
UTF-8 là 65001.