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

Reply via email to