Discussion:
[Python-de] Umlaute auf "ähnliche" ASCII-Zeichen abbilden, z.B. ä->a (unicodedata?)
(zu alt für eine Antwort)
Christian Heimes
2013-01-04 11:32:17 UTC
Permalink
Hi,
vor einigen Wochen gab es ja eine ganz spannende Diskussion über NFD/NFC usw
auf dieser Liste. Nachdem ich mich ganz oberflächlich zu diesem Thema belesen
Ist es mit dem Python-Module bzw. der dahinterliegenden Datenbank möglich,
Umlaute auf "ähnliche" ASCII-Zeichen abzubilden? Also z.B. ä->a, ü->u?
http://pypi.python.org/pypi/Unidecode/

Christian
Hartmut Goebel
2013-01-04 13:35:39 UTC
Permalink
Hallo,
- Es muss eigentlich nur für die deutsche Sprache funktionieren, alles andere
ist nur "nettes Extra". Auf gar keinen Fall asiatische Sprachen.
Ich verwende dafür diese paar Zeilen:

def _strip_accents(s):
return ''.join((c
for c in unicodedata.normalize('NFD', s)
if unicodedata.category(c) != 'Mn'))
--
Schönen Gruß
Hartmut Goebel
Dipl.-Informatiker (univ), CISSP, CSSLP

Goebel Consult
http://www.goebel-consult.de

Monatliche Kolumne:
http://www.cissp-gefluester.de/2012-02-bring-your-own-life-glosse
Blog: http://www.goebel-consult.de/blog/20060215

Goebel Consult ist Mitglied bei http://www.7-it.de/
Dinu Gherman
2013-01-04 14:26:47 UTC
Permalink
Post by Christian Heimes
http://pypi.python.org/pypi/Unidecode/
Gar nicht schlecht. Nur macht es leider (natürlich) keine sprach-
spezifische phonetische Transkription [1] von Umlauten oder nur
Post by Christian Heimes
unidecode(u"œvre")
'oevre'
Post by Christian Heimes
unidecode(u"straße")
'strasse'
Post by Christian Heimes
unidecode(u"Frau Holle")
'Frau Holle'
Post by Christian Heimes
unidecode(u"Frau Hölle")
'Frau Holle' # statt 'Frau Hoelle'
Post by Christian Heimes
print unidecode(u"föo-ß-ẞ")
foo-ss-Ss
Post by Christian Heimes
from django.template.defaultfilters import slugify
slugify(u"föobär")
u'foobar'
Post by Christian Heimes
slugify(u"föobärß")
u'foobar'

Gruß,

Dinu

[1] http://de.wikipedia.org/wiki/Phonetische_Suche
[2] http://de.wikipedia.org/wiki/Großes_ß

Loading...