Seite 1 von 1

liste von allen encodings

Verfasst: Dienstag 18. September 2007, 15:03
von feuervogel
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!

Re: liste von allen encodings

Verfasst: Dienstag 18. September 2007, 15:08
von gerold
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
:-)

Verfasst: Dienstag 18. September 2007, 15:56
von feuervogel
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....

Verfasst: Dienstag 18. September 2007, 16:06
von gerold
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
:-)

Verfasst: Dienstag 18. September 2007, 17:24
von 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.