Page 22 - Python Simple
P. 22
3. Giới thiệu sơ về Python http://www.vithon.org/tutorial/2.5/node5.html
Các tác vụ định dạng chuỗi
Các tác vụ định dạng chuỗi được gọi khi các chuỗi và chuỗi Unicode là
toán hạng bên trái của toán tử % được bàn đến chi tiết hơn ở đây.
3.1.3 Chuỗi Unicode
Bắt đầu với Python 2.0, một kiểu dữ liệu mới để chứa dữ liệu văn bản được cung
cấp cho nhà lập trình: đối tượng Unicode. Nó có thể được dùng để chứa và thay
đổi dữ liệu Unicode (xem http://www.unicode.org/) và tích hợp tốt với các đối
tượng chuỗi đã có, bằng việc tự chuyển đổi khi cần.
Unicode có lợi điểm là cung cấp một số thứ tự (ordinal) cho mọi ký tự trong các
bản thảo dùng trong các văn bản xưa và nay. Trước kia, chỉ có 256 số thứ tự
cho các ký tự bản thảo. Các văn bản xưa bị giới hạn vào một trang mã (code
page) dùng để ánh xạ các số vào các ký tự bản thảo. Điều này dẫn đến nhiều lẫn
lộn đặc biệt là trong ngữ cảnh quốc tế hóa (internationalization, hay được viết
tắt là "i18n" -- "i" + 18 ký tự + "n") phần mềm. Unicode giải quyết các vấn đề
này bằng các định nghĩa một trang mã cho mọi bản thảo.
Tạo một chuỗi Unicode trong Python dễ như tạo một chuỗi thường:
>>> u'Hello World !'
u'Hello World !'
Ký tự "u" đằng trước dấu nháy cho biết đây là một chuỗi Unicode cần được tạo.
Nếu bạn muốn thêm các ký tự đặc biệt trong chuỗi, bạn có thể làm vậy bằng
cách viết thoát nghĩa Unicode-Escape của Python. Ví dụ:
>>> u'Hello\u0020World !'
u'Hello World !'
Dãy thoát nghĩa \u0020 cho biết chèn một ký tự Unicode với thứ tự 0x0020 (ký
tự khoảng trắng) vào một vị trí đã định.
Các ký tự khác được thông dịch theo thứ tự tương ứng của chúng như là thứ tự
Unicode. Nếu bạn có các chuỗi trực tiếp trong bảng mã Latin-1 chuẩn được
dùng ở nhiều nước phương Tây, bạn sẽ thấy rằng 256 ký tự đầu của bảng mã
Unicode giống như 256 ký tự của Latin-1.
Cho các chuyên gia, Python cũng hỗ trợ các chuỗi Unicode thô. Bạn phải dùng
tiền tố 'ur' để bảo Python dùng bảng mã thoát-nghĩa-Unicode-thô
(Raw-Unicode-Escape) . Nó sẽ chỉ áp dụng phép chuyển đổi \uXXXX bên trên
nếu có một số lẻ các dấu suỵt huyền phía trước ký tự 'u' nhỏ.
>>> ur'Hello\u0020World !'
u'Hello World !'
>>> ur'Hello\\u0020World !'
u'Hello\\\\u0020World !'
8 of 12 08/31/2011 07:38 AM