Fehler nur ausserhalb der IDE

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
patmaster
User
Beiträge: 106
Registriert: Donnerstag 3. Februar 2011, 17:21

Hi,

Ich habe ein seltsames Problem.
Ich habe ein kleines Tool geschrieben das Infos aus XML-Files extrahiert und in ein XLS-Sheet schreibt.
Selbstverständlich hatte ich da mit dem Encoding zu kämpfen :)
Derzeit ist es so das wenn ich das Script in Eclipse debugge, kein Fehler geworfen wird, wenn ich das Script jedoch über die cmd-line aufrufe, kriege ich Exceptions, aufgrund von Encoding Problemen.

Hat jemand eine Idee woran das liegen kann ?!

Ich stelle vorerst mal keinen Code rein weil ich hoffe das jemand die Problematik kennt.
Falls der Code doch von Nöten ist, hole ich das natürlich gerne nach.
BlackJack

@patmaster: Du machst halt irgendwo Annahmen über die Kodierung die nur innerhalb von Eclipse gelten. Lass das sein. :-)
patmaster
User
Beiträge: 106
Registriert: Donnerstag 3. Februar 2011, 17:21

Wenn ich doch nur könnte :)

Wieso gelten innerhalb von Eclipse andere Kodierungen als außerhalb ?!
JonasR
User
Beiträge: 251
Registriert: Mittwoch 12. Mai 2010, 13:59

Ich bin der Meinung das Eclipse automatisch Unicode benutzt und der "normale" Interpreter das Script mit ASCII encoding aufruft. Du solltest halt keine ÄÖÜ etc in deinem Code stehen haben. Auch nicht in den Kommentaren. Andernfalls http://www.python.org/dev/peps/pep-0263/ (Habe ich gerade spontan gefunden und nur überflogen also nicht köpfen :P)

EDIT: Bei Aptana (basiert auf Eclipse) kann ich das Encoding unter Preferences>General>Workspace und dann im Punkt "Text file encoding" ändern
Zuletzt geändert von JonasR am Dienstag 18. Oktober 2011, 11:41, insgesamt 1-mal geändert.
patmaster
User
Beiträge: 106
Registriert: Donnerstag 3. Februar 2011, 17:21

In meinem Code selbst verwende ich eh keine Umlaute, es geht eher um die XML-Files die ich einlese. Da meckert er über Zeichen :? .

Danke für den Link, über den bin ich auch schon gestolpert :)
JonasR
User
Beiträge: 251
Registriert: Mittwoch 12. Mai 2010, 13:59

Na dann solltest du dir mal anschauen wie du in Python mit Unicode bzw utf-8 umgehst ;)
Benutzeravatar
Hyperion
Moderator
Beiträge: 7478
Registriert: Freitag 4. August 2006, 14:56
Wohnort: Hamburg
Kontaktdaten:

JonasR hat geschrieben:Ich bin der Meinung das Eclipse automatisch Unicode benutzt und der "normale" Interpreter das Script mit ASCII encoding aufruft.
Darum sollte man das Encoding auch immer angeben, z.B.:

Code: Alles auswählen

# coding: utf-8
Nebenbei ist Unicode ein Konzept, welches nur intern in einem Programm verwendet wird. Zum Serialisieren (=encode) werden eben Kodierungen verwendet, wie etwa "utf-8", "ASCII" oder auch "ISO-8859-1", usw. Nimmt man "utf-8" so hat man keine Probleme, da dieses Encoding alle Unicode-Codepoints abbilden kann. Andere Encodings können das eben nicht und dann krachts.

Für mehr Infos dazu s. meine Sig.
encoding_kapiert = all(verstehen(lesen(info)) for info in (Leonidas Folien, Blog, Folien & Text inkl. Python3, utf-8 everywhere))
assert encoding_kapiert
Antworten