"Specify file encoding"

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
Sans
User
Beiträge: 19
Registriert: Dienstag 28. September 2010, 16:31

Hi,

hab auf nem anderen PC codes vorbereitet und wollte die jetzt zu Hause bearbeiten. Doch da machte mir folgende Meldung einen Strich durch die Rechnung:

Specifiy file encoding

The file's encoding is invalid for Python 3.x.
IDLE will convert it to UTF-8.
What is the current encoding of the fiile?
cp1252
Wenn ch das cp1252 in der Zeile lasse und bestätige kommt:
Decoding Error
*Pfad*
Failed to Decode
Was muss ich in die Zeile schreiben, damits funktioniert, oder, wenns nicht geht, was ab sofort anders machen damits auf anhib funktioniert?

(arbeite mit Python 3.2 und habs auch mit 3.1 probiert. Erstellt wurden die Dateien auf 3.1)


sans
Benutzeravatar
cofi
Python-Forum Veteran
Beiträge: 4432
Registriert: Sonntag 30. März 2008, 04:16
Wohnort: RGFybXN0YWR0

Die Kodierung, die die Datei auch hat.
Wenn man es mit CP-1252 nicht dekodieren kann, hat es auch kein CP-1252.

Wenn ich raten muesste: utf8 oder utf16.

Wenn du die Kodierung nicht weisst, waere es hilfreich wenn du uns erzaehlst, unter welchem Betriebssystem du die Datei erstellt hast.
Sans
User
Beiträge: 19
Registriert: Dienstag 28. September 2010, 16:31

unter xp und bin jetzt auch an nem xp-rechner

(EDIT: utf8 und utf16 funktionieren nicht)
ws
User
Beiträge: 65
Registriert: Freitag 16. Juni 2006, 13:19

Python möchte gerne explizit das file encoding angegeben bekommen. Am besten schreibst Du das Encoding direkt in die Datei in den Header wie in http://www.python.org/dev/peps/pep-0263/ beschrieben:

Code: Alles auswählen

#!/usr/local/bin/python
# coding: utf-8
Dann solltest Du Deinen Editor auch auf dieses Encoding umstellen.

Um zu wissen, wie Du das wieder dekodieren kannst, musst Du das Encoding kennen, mit dem Deine Dateien erstellt wurden.

Gruss

Wolfgang
Benutzeravatar
cofi
Python-Forum Veteran
Beiträge: 4432
Registriert: Sonntag 30. März 2008, 04:16
Wohnort: RGFybXN0YWR0

@ws: Fuer Python 3 sollte man `utf8` als Encoding nicht mehr angeben, weil das der Standard ist.

@OP: Nun wenn das alles nicht klappt, hast du zwei Moeglichkeiten: 1. Du versuchst es mit einem Editor (oder sonstigem Tool), der das Encoding erraet.
2. Du schaust dir die Hexdarstellung an und vergleichst das mit den entsprechenden Mustern, das von Codecs erzeugt wird.

Was fuer eine Meldung ist das eigtl? Kommt die von IDLE? Einem sonstigen Editor? Oder auch auf der Kommandozeile?
Benutzeravatar
jens
Python-Forum Veteran
Beiträge: 8502
Registriert: Dienstag 10. August 2004, 09:40
Wohnort: duisburg
Kontaktdaten:


GitHub | Open HUB | Xing | Linked in
Bitcoins to: 1JEgSQepxGjdprNedC9tXQWLpS424AL8cd
Antworten