liste von allen encodings

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
feuervogel
User
Beiträge: 28
Registriert: Dienstag 18. September 2007, 14:59

hallo!

ich bin auf der suche nach einer funktion, die mir eine liste liefert von allen möglichen encodings, die ich der str-methode decode als argument übergeben kann.

sicherlich kann ich mir das selbst basteln, indem ich die liste aus der doku zum python codecs modul abtippe, aber gibts da nichts einfacheres?

danke für eventuelle antworten!
Benutzeravatar
gerold
Python-Forum Veteran
Beiträge: 5555
Registriert: Samstag 28. Februar 2004, 22:04
Wohnort: Oberhofen im Inntal (Tirol)
Kontaktdaten:

feuervogel hat geschrieben:allen möglichen encodings
Hallo feuervogel!

Willkommen im Python-Forum!

Code: Alles auswählen

>>> import locale
>>> locale.encodings
<module 'encodings' from 'J:\Python25\lib\encodings\__init__.pyc'>
>>> locale.encodings.aliases
<module 'encodings.aliases' from 'J:\Python25\lib\encodings\aliases.pyc'>
>>> locale.encodings.aliases.aliases
EDIT:

Unterstriche in den Encodings müssen evt. durch Bindestriche ersetzt werden.

mfg
Gerold
:-)
http://halvar.at | Kleiner Bascom AVR Kurs
Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.
feuervogel
User
Beiträge: 28
Registriert: Dienstag 18. September 2007, 14:59

alles klar, dankeschön!

obwohl darin utf-8 zum beispiel nicht vorkommt (also auch kein utf_8), sondern nur utf8

naja, mal gucken ob ich das so nutzen kann....
Benutzeravatar
gerold
Python-Forum Veteran
Beiträge: 5555
Registriert: Samstag 28. Februar 2004, 22:04
Wohnort: Oberhofen im Inntal (Tirol)
Kontaktdaten:

feuervogel hat geschrieben:utf-8
Hallo feuervogel!

Das findest du in den Values.

Code: Alles auswählen

>>> [item for item in locale.encodings.aliases.aliases if item.startswith("utf")]
['utf_16le', 'utf16', 'utf_16be', 'utf', 'utf8_ucs4', 'utf8_ucs2', 'utf8', 'utf7']
>>> [item for item in locale.encodings.aliases.aliases.values() if item.startswith("utf")]
['utf_16_le', 'utf_16', 'utf_16_be', 'utf_7', 'utf_8', 'utf_7',
'utf_16_le', 'utf_8', 'utf_8', 'utf_8', 'utf_16', 'utf_8', 'utf_7',
'utf_16_be']
>>>
mfg
Gerold
:-)
http://halvar.at | Kleiner Bascom AVR Kurs
Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.
BlackJack

Letztendlich kann man sich nicht alle Kodierungen geben lassen weil Kodierungen über eine "Suchfunktion" bei dem Modul registriert werden. Das heisst man könnte zum Beispiel eine Funktion registrieren die zu jedem 'quack<n>' die passenden Objekte liefert, wobei '<n>' z.B. eine beliebige Folge von Ziffern ist.
Antworten