
Kurze Antwort: es gibt keinen verlässlichen Weg das Encoding von Dateien zu bestimmen. Genau wie 'chardet' ist man auf Heuristiken angewiesen, um eine verlässliche Entscheidung treffen zu können. Es gibt keinen Algorithmus, um das Encoding 100%-ig bestimmen zu können. Die einzig halbwegs verlässige Methode beim Umgang mit UTF kodierten Dateien ist die *Verwendung* und *Auswertung* des BOM. Ob eine Datei in ISO-8859-1 (alter Standard) vs. ISO-8859-15 (neu, mit EUR Zeichen) - ist nur durch eine (statistische Analyse) möglich. Insofern ist es besser wenn man weiss mit welchen Encodings die Dateien geschrieben wurden. Raten von Encodings bringt i.A. nur Ärger -aj Am 10. April 2012 08:49 schrieb Michael Weber <michael.weber@fh-stralsund.de
:
Guten Morgen werte Mitstreiter,
ich hab da mal ne Frage. Ich denke, dass dieses Thema bereits vielfach und sehr ausdauernd beredet wurde und vielleicht wird dieses Thema bereits gehasst. Man weiß es nicht, daher jetzt meine Frage.
Ausgangslage: ich habe Textdateien, die unter Windows bzw. Linux erstellt werden. Nun habe ich durch testen herausbekommen, dass seitens Linux z.b. Dateien mit UTF-8 erstellt werden. Gleichzeitig ist es auch möglich, dass de_DE@euro verwendet wird (Gentoo sei dank). Und Windows macht dann iso-8859-1.
Gut, ich denke mal, die Erkenntnisse haben viele schon gehabt.
Nun folgendes. Ich möchte gerne beim Öffnen der Datei mit codecs.open das korrekte Encoding angeben. Zum Ermitteln des gesuchten Encoding habe ich mich einfach mit chardet auseinandergesetzt und das dann halt auch genommen. Nun habe ich z.B. vernommen, dass das scheinbar nicht so gern gesehen ist und man kann dabei ja auch mal das falsche ermitteln (so ist es mir passiert: bei iso-8859-1 wird iso-8859-2 detektiert).
Und jetzt endlich die Frage: Wie würdet ihr das machen? Ein Shellaufruf und dann mit "file -ib <DATEI>" vielleicht? Oder gibt es da was schöneres, eleganteres und auch sinnvolleres??
Gruß und herzlichsten Dank Michael ______________________________**_________________ python-de maillist - python-de@python.org http://mail.python.org/**mailman/listinfo/python-de<http://mail.python.org/mailman/listinfo/python-de>