Tôi tìm thấy tài liệu khá rõ ràng, nhưng đây là một vài ví dụ mã:
from unicodedata import normalize
print '%r' % normalize('NFD', u'\u00C7') # decompose: convert Ç to "C + ̧"
print '%r' % normalize('NFC', u'C\u0327') # compose: convert "C + ̧" to Ç
Cả hai 'D' (= phân hủy) các hình thức chuyển đổi một ký tự đơn kết hợp (như ä
) vào hai nhân vật (a
+ hai chấm). Cả hai hình thức 'C' (= soạn) làm ngược lại.
Hai biểu mẫu "K" được sử dụng để chuyển đổi các ký tự được thêm vào Unicode cho mục đích tương thích. Ví dụ, để hỗ trợ phần mềm không thể vẽ vòng tròn quanh các biểu tượng, có một tập hợp các "số vòng tròn", như ① (số unicode 2460). Khi chúng tôi áp dụng quá trình phân hủy kinh điển (NFD) với nó, nó không làm bất cứ điều gì:
print '%r' % normalize('NFD', u'\u2460') # u'\u2460'
Tuy nhiên, sự phân hủy tương thích (NFKD) sẽ trả lại "tương thích" nhân vật tương ứng:
print '%r' % normalize('NFKD', u'\u2460') # 1
Xem http://en.wikipedia.org/wiki/Unicode_equivalence để biết thêm chi tiết.