AW: [Python-de] Zeichensatz einer Textdatei feststellen

Rainer Fischbach fischbach at ecs-gmbh.de
Fre Mar 18 12:28:57 CET 2005


Hallo Albert

Grundsätzlich kann man aus dem Dateiinhalt nicht erkennen, welcher Zeichensatz darin verwendet wird. Das ist besonders ärgerlich, wenn man nicht weiß, welches iso 8859-x vorliegt. 

Das einzige, was man mit Siherheit sagen kann, ist, ob nur 7 oder 8 Bits verwendet werden. Bei utf-16-codierten Dateien gibt es die Konvention, durch die Anordnung der beiden Codes FF und FE den Byte-sex zu signalisieren. Aber das kann natürlich auch zufälligerweise so sein... Mit Patternmatching und etwas Statistik kann man sicher auch relativ zuverlässig erraten, ob man eine utf-8-codierte Datei vor sich hat, aber auch hier kann man nicht völlig sicher sein...

Man muss einfach wissen, welcher Zeichensatz verwendet wird. Insbesondere, wenn die die 8-Bit-Zeichen aus den diversen iso-8859-x-Zeichensätzen sicher transportieren möchtest, ist es empfehlenswert, die Dateien in Unicode zu konvertieren.

Gruß

Rainer


-----Ursprüngliche Nachricht-----
Von: python-de-bounces at python.net [mailto:python-de-bounces at python.net] Im Auftrag von Albert Hermeling
Gesendet: Freitag, 18. März 2005 11:56
An: python-de at python.net
Betreff: [Python-de] Zeichensatz einer Textdatei feststellen

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?

Schon mal Danke im vorraus

mfg

Albert

_______________________________________________
python-de maillist  -  python-de at python.net
http://python.net/mailman/listinfo/python-de