[Tutor PyCZ] Problem s diakritikou
Matus Lucenic
matus.lucenic na gmail.com
Čtvrtek Září 28 14:31:24 CEST 2006
Skusal som aj UnicodeCol a tiez som skusal pridat dbEncoding='utf=8' ale bezvysledne.
Tiez som teraz skusil connectionForURI(uri, use_unicode = 1), ale tiez nic :(
Aj tak dakujem.
------------------Povodna sprava----------------
Tak ja to zkusim - misto StringCol bych pouzil UnicodeCol. Tak jsem
resil podobny problem a nakonec jsem dospel k variante:
uri = "mysql://root@localhost/is_db"
connection = connectionForURI(uri, use_unicode = 1)
connection.debug = True
sqlhub.processConnection = connection
S timto se mi podarilo diakritiku rozchodit. Take jsem ale pracoval s
existujici databazi, ktera byla v iso8859-2, takze do iniciace
UnicodeCol jsem pridaval UnicodeCol(dbEncoding='iso-8859-2').
Nicmene v sqlObject a Pythonu jsem temer uplna lama a navic jsem s tim
experimentoval az pred nejakou dobou, takze pametove stopy uz
zeslably.
Richard Korinek
On 28/09/06, Matus Lucenic <matus.lucenic na gmail.com> wrote:
> Zdravim,
> potreboval by som poradit ohladne vkladania znakov s diakritikou do MySql cez SqlObject.
> Prikladik:
> # -*- coding: utf-8 -*-
> from sqlobject import *
> __connection__ = 'mysql://root:@localhost/test'
> class skTab(SQLObject):
> meno = StringCol(length = 50, notNone = True)
> def zapis():
> skTab.createTable(ifNotExists=True)
> meno =u'skúška'
> novyZaznam = skTab(meno=meno)
> zapis()
> vypise mi takuto chybovy hlasku:
> Traceback (most recent call last):
> File "C:\dia.py", line 19, in ?
> zapis()
> File "C:\dia.py", line 17, in zapis
> novyZaznam = skTab(meno=meno)
> File "c:\python24\lib\site-packages\SQLObject-0.7rc1-py2.4.egg\sqlobject\main.
> py", line 1179, in __init__
> self._create(id, **kw)
> File "c:\python24\lib\site-packages\SQLObject-0.7rc1-py2.4.egg\sqlobject\main.
> py", line 1203, in _create
> self.set(**kw)
> File "c:\python24\lib\site-packages\SQLObject-0.7rc1-py2.4.egg\sqlobject\main.
> py", line 1064, in set
> kw[name] = dbValue = from_python(value, self._SO_validatorState)
> File "c:\python24\lib\site-packages\SQLObject-0.7rc1-py2.4.egg\sqlobject\col.p
> y", line 498, in from_python
> return value.encode("ascii")
> UnicodeEncodeError: 'ascii' codec can't encode characters in position 2-3: ordin
> al not in range(128)
> Podla tejto hlasky to vyzera tak, ze SQLObject sa to snazi previest do ascii, ale nenasiel som sposob, ako to zrusit.
> Takisto pri vypise z db:
> def vypis():
> vypisTab = skTab.select()
> for riadokTab in vypisTab:
> print riadokTab.meno
> vypis()
> mi to vrati haky-baky
> Uz som skusal vsetko mozne, vsetky mozne kodovania na strane pythonu aj db, skusal som to aj cez sqlite ale bezvysledne. Vie mi niekto poradit, v com moze byt problem.
> Dakujem
> ml
> _______________________________________________
> Tutor mailing list
> Tutor na py.cz
> http://www.py.cz/mailman/listinfo/tutor
_______________________________________________
Tutor mailing list
Tutor na py.cz
http://www.py.cz/mailman/listinfo/tutor
Další informace o konferenci Tutor