[python] Unicode v databazi utf8

Ondrej Beranek rainbof na gmail.com
Neděle Leden 18 14:53:34 CET 2009


Tak jsem se dostal ve svem putovani Py svetem k dalsi zahade.

pokousim se provest zapis do tabulky ovsem pokud string obsahuje nejake
nevhodne znaky tak se to neprovede a prevest mi to proste nejde.

provadim toto:

import _mysql
import MySQLdb

conn = MySQLdb.connect (host = "localhost",
                        user = "root",
                        passwd = "",
                        db = "databaze")

conn.set_character_set('utf8')
spojeni = conn.cursor ()
x='url=\xa1[img'

spojeni.execute("UPDATE databaze.phpbb3_posts SET post_text = '%s' WHERE
phpbb3_posts.post_id =637797 LIMIT 1 ;"%x)
spojeni.close()

a zde dostanu hlaseni
"Warning: Incorrect string value: '\xA1[img' for column 'post_text' at row
1"
coz mi teda neni jasne string jako string. navic toto jsem z db prve precetl
a ted to potrebuju jen vratit zpet na puvodni misto ve tvaru v jakem to tam
bylo.

No rekneme ze tedy neni slusne do databaze cpat unicode ovsem ono to spadne
i u prevodu

print x.decode('utf-8')

mi zakrici: UnicodeDecodeError: 'utf8' codec can't decode byte 0xa1 in
position 4: unexpected code byte
takze ted nejak nevim kudy kam.
------------- dal?í ?ást ---------------
HTML p?íloha byla odstran?na...
URL: <http://www.py.cz/pipermail/python/attachments/20090118/6a63773d/attachment.htm>


Další informace o konferenci Python