Seite 1 von 1
TextCtrl - encoding Problem: UnicodeDecodeError Traceback
Verfasst: Donnerstag 2. Dezember 2004, 11:50
von jens
wenn ich per WriteText ein Test mit "Sonderzeichen" wie ÄÖÜäöü schreibe, bekomme ich folgenden Traceback:
UnicodeDecodeError: 'ascii' codec can't decode byte 0xfc in position 7: ordinal not in range(128)
Muß ich Texte erst encoden?
Folgende coding kommentare schon probiert:
- # -*- coding: ISO-8859-1 -*-
# -*- coding: utf-8 -*-
# -*- coding: latin-1 -*-
Verfasst: Donnerstag 2. Dezember 2004, 12:03
von jens
Verfasst: Donnerstag 2. Dezember 2004, 15:28
von jens
Jetzt hab ich allerdings doch nocht ein Problem damit
Und zwar, wenn Bsp. ein Button-Namen mit Umlaute ist, bekomme ich wieder ein Traceback...
Also muß ich doch an dem Coding-Kommentar was ändern???
EDIT1:
Übrigends liefert mir sys.getfilesystemencoding() "mbcs" zurück ?!?
EDIT2:
sollte ich vielleicht besser "non Unicode wxPython" installieren??? Hab nämlich z.Z. "wx-2.5.3-msw-unicode" installiert...
EDIT3:
('de_DE', 'cp1252')
Verfasst: Donnerstag 2. Dezember 2004, 15:47
von jens
So, hab "non Unicode wxPython" also die ANSI version installiert... Und siehe da, die Fehler sind weg...
Kann mir das jetzt einer erklären???

Verfasst: Freitag 3. Dezember 2004, 13:24
von jens
Ich hatte nun nocheinmal das Problem, mit einem wx.MessageBox("Gewählt:"...)
Es gab zwar kein Traceback, aber das "ä" wurde falsch Dargestellt...
Das lag aber daran, das die aktuelle Datei mit coding: UFT-8 abgespeichert wurde...
Richtig funktioniert es wenn ich als coding: cp1252 oder coding: ISO-8859-1 benutze...
Welches ist besser unter WinXP ?
Verfasst: Sonntag 5. Dezember 2004, 00:13
von Leonidas
Bei mir geht sowas auch:
Code: Alles auswählen
import wx
app = wx.PySimpleApp()
msg = wx.MessageBox(u"öäüÖÄÜß", u"Unsere geliebten Umlaute")
Er gibt zwar eine DeprecationWarning aus, aber angezeigt wird es.
Und wenn ich es so mache hält er die Klappe und meckert nicht:
Code: Alles auswählen
# -*- coding: latin-1 -*-
import wx
app = wx.PySimpleApp()
msg = wx.MessageBox(u"öäüÖÄÜß", u"Unsere geliebten Umlaute")
Ich würde an deiner stelle latin-1 oder eben iso-8859-1 nehmen (was ja das gleiche ist), denn die CodePages sind afaik eine Erfindung Microsofts und ISO eben ISO Standards.