Unicode ordinal not in range (128)

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.
MaVoj
User
Beiträge: 20
Registriert: Freitag 23. Januar 2004, 12:52
Wohnort: Berlin

Unicode ordinal not in range (128)

Beitragvon MaVoj » Dienstag 30. März 2004, 14:50

Hallo,
ich habe momentan ein Problem mit dem Zeichensatz in Python. Bei einigen Funktionsaufrufen kommt es zu der Fehlermeldung "UnicodeError: ASCII decoding error: ordinal not in rang(128).
Bisher ersetzte ich die ASCII-Zeichen > 127 durch ein bekanntes Zeichen (?). Da dies aber nur eine Krücke ist, wollte ich den Zeichensatz ändern. Da ich dies aber noch nicht hinbekommen habe, meine Frage. Wie kann ich Zeichen > 127 in Funktionen bearbeiten? Meine aufzurufende Funktion ist "*.toxml". Kann man die Codierung angeben?
Benutzeravatar
hans
User
Beiträge: 728
Registriert: Sonntag 22. September 2002, 08:32
Wohnort: Sauerland
Kontaktdaten:

Beitragvon hans » Dienstag 30. März 2004, 18:38

Womit arbeitest du? QT? QTStrings kannst du mit der Funktion local8bit() konvertieren.

Aber sag erst einmal, was du einsetzt, sonst raten wir hier nur unnötig rum.

Hans
Benutzeravatar
hans
User
Beiträge: 728
Registriert: Sonntag 22. September 2002, 08:32
Wohnort: Sauerland
Kontaktdaten:

Beitragvon hans » Dienstag 30. März 2004, 18:48

Ich trage hier die Antwort von fs111 aus dem gesperrten Thread nach, damit es die Nachwelt einfacher hat

fs111 schrieb
Vermutlich arbeitest Du mit XML-Dateien, dann solltest Du in der Deklaration von xml den Zeichensatz explizit auf iso-8859-1(5) umstellen, dann sollte das nicht mehr passieren. Hatte ich auch schon mal das Problem und bin halb wahnsinnig geworden. Nach der Umstellung ging es völlig problemlos.

HTH

Grüße fs111
Benutzeravatar
fs111
User
Beiträge: 170
Registriert: Samstag 15. November 2003, 11:42
Kontaktdaten:

Beitragvon fs111 » Dienstag 30. März 2004, 19:21

Kann man denn mit PHPBB keine Threads verschieben?

fs111
Milan
User
Beiträge: 1078
Registriert: Mittwoch 16. Oktober 2002, 20:52

Beitragvon Milan » Dienstag 30. März 2004, 19:30

Hi. Ja, du kannst Threads verschieben, aber keine einzelnen Beiträge (ist zumindest für mich nicht möglich)...

@MaVoj: Ja, wie es Hans schreibt, wäre es ganz nützlich zu wissen woher die Strings kommen und wie sie bearbeitet werden sollen. So kann ich dir leider auch nicht helfen...

Milan
Gast

Beitragvon Gast » Mittwoch 31. März 2004, 09:36

Ich fülle ein "dom_main" (createElement; createTextNode) und erhalte den Fehler beim Aufruf von "strxml = str(dom_main.toxml())". dom_main.createTextNode(Info) übergeben ich den Wert mit den Sonderzeichen!
Benutzeravatar
fs111
User
Beiträge: 170
Registriert: Samstag 15. November 2003, 11:42
Kontaktdaten:

Beitragvon fs111 » Mittwoch 31. März 2004, 10:15

Hast Du meinen Tipp ausprobiert?

fs111
MaVoj
User
Beiträge: 20
Registriert: Freitag 23. Januar 2004, 12:52
Wohnort: Berlin

Beitragvon MaVoj » Mittwoch 31. März 2004, 12:53

Hi fs111,

fs111 hat geschrieben:Hast Du meinen Tipp ausprobiert?

fs111


Wo kann ich denn die "Deklaration von xml den Zeichensatz explizit auf iso-8859-1(5) umstellen"?
Benutzeravatar
fs111
User
Beiträge: 170
Registriert: Samstag 15. November 2003, 11:42
Kontaktdaten:

Beitragvon fs111 » Mittwoch 31. März 2004, 13:13

Code: Alles auswählen

<?xml version="1.0" encoding="ISO-8859-1"?>
muss in der ersten Zeile des Dokumentes stehen. Wenn kein Zeichensatz angegeben wird, wird standardmäßig von UTF-8 ausgegangen, und das führt dann zu Problemen.

fs111
MaVoj
User
Beiträge: 20
Registriert: Freitag 23. Januar 2004, 12:52
Wohnort: Berlin

Beitragvon MaVoj » Mittwoch 31. März 2004, 13:23

Danke für die Info. Diese Textzeile steht an erster Position. Allerdings habe ich "iso" klein geschrieben! Ist das ein Problem?
Benutzeravatar
fs111
User
Beiträge: 170
Registriert: Samstag 15. November 2003, 11:42
Kontaktdaten:

Beitragvon fs111 » Mittwoch 31. März 2004, 14:18

Ich glaube das muss groß sein, teste es einfach mal.

fs111
MaVoj
User
Beiträge: 20
Registriert: Freitag 23. Januar 2004, 12:52
Wohnort: Berlin

Beitragvon MaVoj » Donnerstag 1. April 2004, 11:25

Hi fs111,

hat leider auch mit der Großschreibung nicht funktioniert. Hast du eventuell noch einem Tipp auf Lager?
Benutzeravatar
fs111
User
Beiträge: 170
Registriert: Samstag 15. November 2003, 11:42
Kontaktdaten:

Beitragvon fs111 » Freitag 2. April 2004, 10:05

Hmm, welche XML-Implementierung benutzt Du denn?

fs111
MaVoj
User
Beiträge: 20
Registriert: Freitag 23. Januar 2004, 12:52
Wohnort: Berlin

Beitragvon MaVoj » Freitag 2. April 2004, 12:29

Aus der 'minidom.py' die Funktion 'toxml' und von dort widerum 'writexml'. In diesem 'minidom.writexml' steht der Eintrag 'writer.write('<?xml version="1.0" ?>\n')'. Sollte ich diesen mal durch '<?xml version="1.0" encoding="ISO-8859-1"?>' ersetzen?
Benutzeravatar
Dookie
Python-Forum Veteran
Beiträge: 2010
Registriert: Freitag 11. Oktober 2002, 18:00
Wohnort: Salzburg
Kontaktdaten:

Beitragvon Dookie » Freitag 2. April 2004, 12:58

Hi MaVoj,

damit sollte es laufen, ich würde aber bei xml immer mit Unicode arbeiten und im Programm dann die Bildschirmausgaben abhängig von den Einstellungen des Rechners Codieren.
Hier noch ein interessanter Link.
http://p-nand-q.com/python/unicode_faq.html


Gruß

Dookie

Wer ist online?

Mitglieder in diesem Forum: WhiteyW