2010-09-13 6 views
11

bir unicode dizesinden ASCII olmayan karakter değiştirilsin mi? burada 'ile birleşerek bir dict ile> kanoPython içinde unicode dizesinden ASCII olmayan karakter yerini alabilir Nasıl Python

Myaybe -> Müzik

Karton - -> karton

Caño

música:

Bu, belirli bir girdi için tek- çıkarılır 'bir anahtar ve' bir 'bir değer mi?

+2

olası yinelenen [Ne piton unicode dizede aksan kaldırmak için en iyi yoldur?] (http://stackoverflow.com/questions/517923/what-is-the-best-way-to- remove-aksan-in-a-python-unicode-string) – nosklo

cevap

21

yapmak istediğiniz tüm olmayan aksanlı eşdeğer aksanlı karakterler aşağılamak ise: Bu sizin veri unicode gelmez durumda olabilir: sadece bu cevabı tamamlamak için, Şimdi

>>> import unicodedata 
>>> unicodedata.normalize('NFKD', u"m\u00fasica").encode('ascii', 'ignore') 
'musica' 
7

(yani başka bir kodlamayla bir dosya okuyorsunuz ve dizeyi bir "u" ile önleyemezsiniz). İşte bu da çalışabilecek bir snippet (çoğunlukla İngilizce okuma dosyaları için). arasında

import unicodedata 
unicodedata.normalize('NFKD',unicode(someString,"ISO-8859-1")).encode("ascii","ignore")