Hello, Ed, Hraban and Nick. I've found a nice way to solve the "dabo demo problem" with my "latin-1"="iso8859-1" character set, without changing a single line of the dabo framework.
Simply create a file " sitecustomize.py" under Lib\site-packages in my python directory: # sitecustomize.py # this file can be anywhere in your Python path, # but it usually goes in ${pythondir}/lib/site-packages/ import sys sys.setdefaultencoding('iso8859-1') This method "set the current default string encoding used by the Unicode implementation" (Python library reference). Before I made this 'discovery', I've tested Nick's proposal : cd, ch = evt.keyCode, unicode(evt.keyChar, dabo.getEncoding()) . . . and : File "C:\Projects\dabo\demo\samples/dTextBox.py", line 55, in onTextKeyChar def onTextKeyChar(self, evt): AttributeError: 'module' object has no attribute 'getEncoding' It seems that my dabo has no getEncoding() method. The solution Ed gave me : to put 'settings_override.py' file in demo folder, with line : defaultEncoding = "latin-1" did not work (no error, but no different results). Ok, now I'm done with the demo. It goes OK. So I begin exploring the Dabo AppWizard and I've generated the CRUD/File Management form. When I go to see the grid of customers (the Browse tab): lots of wrong characters in the name and address columns! Then, I've entered a new record and -Eureka, it's ok! -The new record is exactly as I've entered. So, the other records already entered in the online database were input by other users with other encodings. PHEW! Big relief. melkarth -----Original Message----- From: dabo-users-boun...@leafe.com [mailto:dabo-users-boun...@leafe.com] On Behalf Of Nick Raptis Sent: sábado, 21 de mayo de 2011 14:57 To: dabo-users@leafe.com Subject: Re: [dabo-users] Reenv: Problem in Dabo demo Just my 2 cents: On 05/21/2011 10:02 AM, melkarth0 wrote: > Finally, it seems that I'm bound to 'latin-1' encoding. > I'm starting to think that this is about wx putting a value to keyChar in your systems default encoding instead of utf-8 > I changed line 56 in dTextBox.py, in onTextKeyChar() section in the demo: > > cd, ch = evt.keyCode, evt.keyChar > > for this one: > > cd, ch = evt.keyCode, unicode(evt.keyChar, 'latin-1') > > and now runs fine and logit() displays a beautiful a-acute. > > More, unicode(evt.keyChar, 'utf-8') doesn't work. > unicode(evt.keyChar, 'latin-1') actually sounds pretty sane. You just need to dynamically get the default encoding via a property instead of hardcoding it. I think this is dabo.getEncoding(), so try unicode(evt.keyChar, dabo.getEncoding()) Most of us don't see this error because our default encoding is utf-8 anyway. > But, please, if anybody has a better approach, make me know it. I have > a conceptual confusion with this encodings stuff. For example, if I > put the line # -*- coding: latin-1 -*- on all the affected demo > modules, will it works as is? > > Greetings > Melkarth > _______________________________________________ Post Messages to: Dabo-users@leafe.com Subscription Maintenance: http://leafe.com/mailman/listinfo/dabo-users Searchable Archives: http://leafe.com/archives/search/dabo-users This message: http://leafe.com/archives/byMID/4dd7b686.4080...@otenet.gr _______________________________________________ Post Messages to: Dabo-users@leafe.com Subscription Maintenance: http://leafe.com/mailman/listinfo/dabo-users Searchable Archives: http://leafe.com/archives/search/dabo-users This message: http://leafe.com/archives/byMID/000601cc18a2$1ec35c70$5c4a1550$@gmail.com