[Python-de] Zeichensatz einer Textdatei feststellen

Andreas Pakulat apaku at gmx.de
Fre Mar 18 12:33:54 CET 2005


On 18.Mär 2005 - 11:56:02, Albert Hermeling wrote:
> Guten Morgen,
> 
> ich überlege gerade ob es möglich ist den verwendeten Zeichensatz einer 
> Textdatei automatisch zu ermitteln.
> 
> Der Hintergurnd meiner Überlegung ist, wenn ich Strings aus einer Datei mit 
> mir unbekannten Zeichensatz lese und diesen String dann in Unicode umwandeln 
> will, brauche ich den verwendeten Zeichensatz. Aber wie ermittele ich den? 
> Gibt es dafür eine Python funktion oder muss ich auf externe Programme wie z. 
> B. file unter Linux zurückgreifen?

Kommt auf den Zeichensatz drauf an, us-ascii und latin1 erkennt man an
vorhanden Umlauten (lies Zeichen mit Zahlen >127 bedeutet Umlaut),
latin1 und latin9 kann man denke ich auch auseinanderhalten (aber frag
mich nicht wie...). UTF-8 kann man von 1-Byte-Zeichensaetzen die mehr
als 128 Zeichen haben auch gut unterscheiden. Bei UTF-16 oder -32 bin
ich mir nicht sicher... Wie das mit Zeichensaetzen fuer Russisch,
Hebraeisch, Afrikaans oder Japanisch ist weiss ich nicht. Aber ich
denke auch die benutzen z.T. eine 8-Bit Kodierung (sprich du kannst
sie nur schlecht von latin1 unterscheiden).... 

Du kannst dir ja mal den Quellcode von file anschauen, wie der es
macht....

Andreas

-- 
You will be awarded a medal for disregarding safety in saving someone.