[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