Bạn có thể chuyển đổi tệp một cách dễ dàng chỉ bằng cách sử dụng hàm unicode
, nhưng bạn sẽ gặp sự cố với các ký tự Unicode không tương đương ASCII thẳng.
This blog đề xuất mô-đun unicodedata
, có vẻ như quan tâm đến việc chuyển đổi các ký tự không có giá trị ASCII tương ứng trực tiếp, ví dụ:
>>> title = u"Klüft skräms inför på fédéral électoral große"
thường chuyển đổi sang
Klft skrms infr p fdral lectoral groe
mà là khá sai. Tuy nhiên, bằng cách sử dụng mô-đun unicodedata
, kết quả có thể gần gũi hơn với văn bản gốc:
>>> import unicodedata
>>> unicodedata.normalize('NFKD', title).encode('ascii','ignore')
'Kluft skrams infor pa federal electoral groe'
Điều đó khá tốt, ngoại trừ (như đã nói) nó bỏ sót một vài ký tự. Đối với tiếng Latin-1, bạn cần có trường hợp đặc biệt Æ, Ð, Ø, Þ, æ, ð, ø, ß và þ. – giltay
Fredrick Lundh đăng trên này, với một kịch bản đơn giản để xây dựng trên đầu trang của 'unicodedata' cho thay thế trường hợp đặc biệt: http://effbot.org/zone/unicode-convert.htm – rcoup