Hallo,
muss ich dem listctrl einen besonderen parameter mitgeben damit er utf-8 akzeptiert und nicht mit einem Fahler aussteigt.
-->
UnicodeDecodeError: 'ascii' codec can't decode byte 0xfc in position 1: ordinal not in range(128)
--<
Ich benutze hier Linux, Debian
listctrl macht kein utf-8
- gerold
- Python-Forum Veteran
- Beiträge: 5555
- Registriert: Samstag 28. Februar 2004, 22:04
- Wohnort: Oberhofen im Inntal (Tirol)
- Kontaktdaten:
Hi rkruggel!rkruggel hat geschrieben:-->
UnicodeDecodeError: 'ascii' codec can't decode byte 0xfc in position 1: ordinal not in range(128)
--<
Vielleicht bringt dich dieser Thread weiter:
http://www.python-forum.de/post-47451.html#47451
mfg
Gerold

http://halvar.at | Kleiner Bascom AVR Kurs
Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.
Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.
- gerold
- Python-Forum Veteran
- Beiträge: 5555
- Registriert: Samstag 28. Februar 2004, 22:04
- Wohnort: Oberhofen im Inntal (Tirol)
- Kontaktdaten:
Hi rkruggel!
Ich schließe jetzt einfach mal daraus, dass du keinen UTF8-String übergibst, sondern irgendetwas in die Richtung iso-8859-1 oder iso-8859-15.
Das wäre auch das (deutschsprachige) Standard-Encoding von Debian.
mfg
Gerold

Code: Alles auswählen
UnicodeDecodeError: 'ascii' codec can't decode byte 0xfc in position 1: ordinal not in range(128)
Code: Alles auswählen
UnicodeDecodeError: 'utf8' codec can't decode bytes in position 102-104: invalid data
Das wäre auch das (deutschsprachige) Standard-Encoding von Debian.
mfg
Gerold

http://halvar.at | Kleiner Bascom AVR Kurs
Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.
Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.
Eine blöde frage: Hast du die unicode Version von wxPython installiert? Mit unicode und wxPython hatte ich bisher keinerlei Probleme. Obs auch für Linux so eine Version gibt weiß ich nicht. Hab die Version für Windows.
lg
lg
- gerold
- Python-Forum Veteran
- Beiträge: 5555
- Registriert: Samstag 28. Februar 2004, 22:04
- Wohnort: Oberhofen im Inntal (Tirol)
- Kontaktdaten:
Hi rkruggel!rkruggel hat geschrieben:Die Daten kommen aus einer MySQL-DB. Die Tabellen/db stehen auf utf8-bin. Ein einfacher print zeigt mir für 'Lüdenscheid' 'L\xfcdenscheid'.
Das was du da zurück bekommst ist nicht "utf-8".
Code: Alles auswählen
>>> print repr(u"ü".encode("utf-8"))
'\xc3\xbc'
>>> print repr(u"ü".encode("iso-8859-15"))
'\xfc'
>>>
Gerold

http://halvar.at | Kleiner Bascom AVR Kurs
Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.
Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.
-
- User
- Beiträge: 21
- Registriert: Mittwoch 9. März 2005, 11:40
- Wohnort: Altena, Westf.
- Kontaktdaten:
Du hast recht.
Ich habe mich von der Einstellung in der db etwas in die irre führen lassen.
Es ist wirklich kein utf-8. Es ist iso-8859-1. Aber jetzt ist das Problem mit dem ListCtrl für mich mich unverständlicher.
Dein Beispiel liefert bei mir die gleichen Ergebnisse. Ich habe die komplette DB umgestellt nach iso-8859-1. Da Problem bleibt leider.
Ich habe mich von der Einstellung in der db etwas in die irre führen lassen.
Es ist wirklich kein utf-8. Es ist iso-8859-1. Aber jetzt ist das Problem mit dem ListCtrl für mich mich unverständlicher.
Dein Beispiel liefert bei mir die gleichen Ergebnisse. Ich habe die komplette DB umgestellt nach iso-8859-1. Da Problem bleibt leider.
cu
Roland
Roland
- gerold
- Python-Forum Veteran
- Beiträge: 5555
- Registriert: Samstag 28. Februar 2004, 22:04
- Wohnort: Oberhofen im Inntal (Tirol)
- Kontaktdaten:
Hi rkruggel!rkruggel hat geschrieben:Ich habe die komplette DB umgestellt nach iso-8859-1. Da Problem bleibt leider.
Ich habe keine Erfahrung mit MySQL und Python, aber was ich soeben gelesen habe, deutet darauf hin, dass es bei "mysql-Python 1.2.1_p2" Probleme mit Umlauten gibt.
- http://sourceforge.net/project/showfile ... p_id=22307
- http://sourceforge.net/forum/forum.php? ... m_id=70461
- http://sourceforge.net/forum/forum.php? ... m_id=70461
Suche hier drinnen http://mysql-python.svn.sourceforge.net ... iew=markup doch mal nach den Wörtern "use_unicode" und "charset".
Ob das nachträgliche Ändern des Standardencodings von MySQL auch das tatsächliche Encoding der enthaltenen Daten ändert? -- Eher nicht!
Ich persönlich würde beim Verbinden das Flag "use_unicode" verwenden und beim Füllen der Liste, die Strings in das Encoding umwandeln, das auch vom Python-Modul verwendet wird und auch per ``wx.SetDefaultPyEncoding()`` eingestellt wurde.
Ungetesteter Pseudocode:
Code: Alles auswählen
#!/usr/bin/env python
# -*- coding: iso-8859-1 -*-
import wx
import MySQLdb
wx.SetDefaultPyEncoding("iso-8859-1")
conn = MySQLdb.connect(passwd = "pass", db = "dbname", use_unicode = True)
...
unicodestringvonderdatenbank = u"öäüß"
iso88591string = unicodestringvonderdatenbank.encode("iso-8859-1")
Gerold

http://halvar.at | Kleiner Bascom AVR Kurs
Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.
Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.
- gerold
- Python-Forum Veteran
- Beiträge: 5555
- Registriert: Samstag 28. Februar 2004, 22:04
- Wohnort: Oberhofen im Inntal (Tirol)
- Kontaktdaten:
PS:
- Lesestoff: http://www.python-forum.de/topic-5095.html
- Auch wenn es sich hier um pySQLite dreht...: http://gelb.bcom.at/trac/misc/wiki/Tuto ... iteUmlaute
- Lesestoff: http://www.python-forum.de/topic-5095.html
- Auch wenn es sich hier um pySQLite dreht...: http://gelb.bcom.at/trac/misc/wiki/Tuto ... iteUmlaute
http://halvar.at | Kleiner Bascom AVR Kurs
Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.
Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.