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

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?
hans
User
Beiträge: 728
Registriert: Sonntag 22. September 2002, 08:32
Wohnort: Sauerland
Kontaktdaten:

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
hans
User
Beiträge: 728
Registriert: Sonntag 22. September 2002, 08:32
Wohnort: Sauerland
Kontaktdaten:

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
fs111
User
Beiträge: 170
Registriert: Samstag 15. November 2003, 11:42
Kontaktdaten:

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

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

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!
fs111
User
Beiträge: 170
Registriert: Samstag 15. November 2003, 11:42
Kontaktdaten:

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

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"?
fs111
User
Beiträge: 170
Registriert: Samstag 15. November 2003, 11:42
Kontaktdaten:

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

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?
fs111
User
Beiträge: 170
Registriert: Samstag 15. November 2003, 11:42
Kontaktdaten:

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

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?
fs111
User
Beiträge: 170
Registriert: Samstag 15. November 2003, 11:42
Kontaktdaten:

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

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?
Dookie
Python-Forum Veteran
Beiträge: 2010
Registriert: Freitag 11. Oktober 2002, 18:00
Wohnort: Salzburg
Kontaktdaten:

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
Antworten