Python 2.4 vs 2.5 - Unicode error

Wolfgang Rohdewald wolfgang at rohdewald.de
Thu Jan 22 07:10:50 CET 2009


On Mittwoch, 21. Januar 2009, Gaurav Veda wrote:
> UnicodeDecodeError: 'ascii' codec can't decode byte 0xc2 in position
> 4357: ordinal not in range(128)
> 
> Before sending the (insert) query to the mysql server, I do the
> following which I think should've taken care of this problem:
>  sqlStr = sqlStr.replace('\\', '\\\\')

you might consider using what mysql offers about unicode: save
all strings encoded as unicode. Might be more work now but I think
it would be a good investment in the future.

have a look at the mysql documentation for

mysql_real_escape_string() takes care of quoted chars. 

mysql_set_character_set() for setting the character set used
by the database connection

you can ensure that the web page is unicode by doing something
like

    charsetregex = re.compile(r'charset=(.*?)[\"&]')
    charsetmatch = charsetregex.search(page)
    if charsetmatch:
       charset=charsetmatch.group(1)
       utf8Text = unicode(page,charset)

-- 
Wolfgang



More information about the Python-list mailing list