Thư viện tri thức trực tuyến
Kho tài liệu với 50,000+ tài liệu học thuật
© 2023 Siêu thị PDF - Kho tài liệu học thuật hàng đầu Việt Nam

Tài liệu Sử dụng Tiếng Việt Unicode với Visual C/C++ docx
Nội dung xem thử
Mô tả chi tiết
Giải pháp toàn diện: Sử dụng Tiếng Việt Unicode với Visual C/C++
Vấn đề lập trình tiếng Việt Unicode với Visual C/C++
đã được đề cập nhiều trên các số báo trước đây. Gần
đây có một phương pháp sử dụng hằng xâu utf-8. Tuy
nhiên, cách làm này có nhược điểm là không tách rời
được mã chương trình với thiết kế giao diện (do các
hằng xâu tiếng Việt được đặt trong mã chương trình),
dẫn đến khó khăn khi phát triển và bảo trì ứng dụng
vừa hoặc lớn
Qua bài viết này, tôi muốn trình bày một cách tiếp
cận khác có hệ thống hơn và tiện dụng hơn; đồng
thời, tôi cũng muốn đưa ra một số giải pháp để Việt
hoá được nhiều thành phần của ứng dụng hơn.
Trước tiên, ta nói về thực trạng hỗ trợ Unicode của các công cụ phát triển trực quan Visual C++
6.0 và 7.1 (.NET 2003) (bản 7.0 - .NET 2002 - hiện không còn được dùng phổ biến; nhưng về cơ
bản, nó tương tự như bản 7.1). Visual C++ 6.0 không cho phép nhập Unicode ở cả trình soạn
thảo tài nguyên (resource editor – dùng để tạo các thành phần giao diện ứng dụng) lẫn trình soạn
thảo mã nguồn. Visual C++ 7.1 cho phép nhập Unicode trong mã nguồn. Đối với việc soạn thảo
tài nguyên, Unicode được hỗ trợ nếu bạn dùng .NET framework; còn nếu bạn dùng Win32API
hoặc MFC thì không. Tuy nhiên, việc biên dịch mã Unicode lại khác, sẽ được đề cập ở phần sau.
Mã lệnh Unicode
Các xâu Unicode (hay xâu kí tự rộng) được lưu như là mảng wchar_t, về bản chất là kiểu int16
(2 byte). Để trình biên dịch biết một xâu/kí tự là Unicode, ta phải thêm tiếp đầu ngữ L. Ví dụ,
L“Thế Giới Vi Tính” hoặc L“T”. Có thể dùng macro _T hoặc TEXT để đảm bảo các xâu có thể
được dịch phù hợp với thiết định của project. Xâu là Unicode nếu macro
UNICODE/_UNICODE được định nghĩa, là xâu bình thường nếu không. Với Visual Studio
.NET, hai macro UNICODE và _UNICODE được tự động tạo ra khi ta đặt Character Set của
Project là Unicode.