Hello guys & girls
I'm pasting an "en dash"
(http://www.fileformat.info/info/unicode/char/2013/index.htm) character into a
tkinter widget, expecting it to be properly stored into a MySQL database.
I'm getting this error:
*****************************************************************************
Exception in Tkinter callback
Traceback (most recent call last):
File "C:\Python24\lib\lib-tk\Tkinter.py", line 1345, in __call__
return self.func(*args)
File "chupadato.py", line 25, in guardar
cursor.execute(a)
File "C:\Python24\Lib\site-packages\MySQLdb\cursors.py", line 149, in execute
query = query.encode(charset)
UnicodeEncodeError: 'latin-1' codec can't encode character u'\u2013' in position
52: ordinal not in range(256)
*****************************************************************************
Variable 'a' in 'cursor.execute(a)' contains a proper SQL statement, which
includes the 'en dash' character just pasted into the Text widget.
When I type 'print chr(150)' into a python command line window I get a LATIN
SMALL LETTER U WITH CIRCUMFLEX
(http://www.fileformat.info/info/unicode/char/00fb/index.htm), but when I do so
into a IDLE window I get a hypen (chr(45).
Funny thing I quite don't understand is, when I do paste that 'en dash'
character into a python command window (I'm using MSWindows), the character is
conveniently converted to chr(45) which is a hyphen (I wouldn't mind if I could
do that by coding, I mean 'adapting' by visual similarity).
I tried searching "en dash" or even "dash" into the encodings folder of python
Lib, but I couldn't find anything.
I'm using Windows Vista english, Python 2.4, latest MySQLdb. Default encoding
changed (while testing) into "iso-8859-1".
Thanks for any help.
--
http://mail.python.org/mailman/listinfo/python-list