[Tutor PyCZ] Problem s diakritikou

Matus Lucenic matus.lucenic na gmail.com
Čtvrtek Září 28 12:19:48 CEST 2006


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



Další informace o konferenci Tutor