Special Characters (Unicode, Ascii) in Python and MySQL

Carsten Haese carsten at uniqsys.com
Tue Jan 2 08:43:38 EST 2007


On Mon, 2007-01-01 at 21:57 -0800, ronrsr wrote:
> I have an MySQL database called zingers. The structure is:
> 
> zid - integer, key, autoincrement
> keyword - varchar
> citation - text
> quotation - text
> 
> I am having trouble storing text, as typed in latter two fields.
> Special characters and punctuation all seem not to be stored and
> retrieved correctly.
> 
> Special apostrophes and single quotes from Microsoft Word are causing a
> special problem, even though I have ''ed all 's
> 
> perhaps the encoding of the database itself should be different? it is
> currenlty latin_swedish_ci
> 
> Input and output is through a browser.
> 
> I think my problem may be that I need to encode the string before
> saving it in the databse. Can anyone point me in the right direction
> here?
> 
> 
> 
> here's the error message:
> 
> UnicodeDecodeError: 'ascii' codec can't decode byte 0xe2 in position
> 95: ordinal not in range(128)
>       args = ('ascii', "update zingers set keywords =
> 'a;Action;b;Religi... \n \n \n ' where zid = 422", 95, 96, 'ordinal not
> in range(128)')
>       encoding = 'ascii'
>       end = 96
>       object = "update zingers set keywords = 'a;Action;b;Religi... \n
> \n \n ' where zid = 422"
>       reason = 'ordinal not in range(128)'
>       start = 95
> 
> 
> 
> the characters I am trying to add are startquote and endquote copied
> and pasted from Microsoft Word.
> 
> 
> 
> Can anyone help me on this?

Apparently not, since you've already posted this problem on December
18th and got various responses. Did you read
http://effbot.org/pyfaq/how-do-i-escape-sql-values-when-using-the-db-api.htm as Fredrik suggested in the earlier thread?

-Carsten





More information about the Python-list mailing list