Hello all,

Many thanks for your kind help. Unfortunately, I haven't found a
solution to my problem yet, but I think with your comments I now
understand it a lot better... :-)

Jorge and Italo wrote:
> [... kid.encoding in dev.cfg, encoding in kid templates ...]

My kid template encoding was 'iso-8859-1'. I indeed didn't have
kid.encoding set in the dev.cfg file. I have that now, but that
unfortunately hasn't changed my results. I experimented with different
setttings, too, but none of that seems to solve my problem.

Italo Maia wrote:
>One more thing, prefer unicodecol to stringcol.

I guess this really pinpoints my problem. I use:

  class sqlmeta:
    fromDatabase = True 

in my models. The database contains columns with iso-8859-1 text. (The
database was generated with and is currently maintained by a
non-TurboGears application.) What I think happens is that the kid
system retrieves 8-bit strings with iso-8859-1 characters in it from
the model, and then tries to convert it to unicode strings.
Unfortunately, no-one told it which encoding to use, so it tries
'ascii', and then (rightly) throws an exception when it finds a
non-Ascii character.

I gather from your comments that it would be best to just change the
table definition(s). The problem is that I also use other programs to
access the same database, so I can't easily change my table structure.
Changing the table structure would make it really easy for TurboGears,
but I would have to put in all the work elsewhere, so that's cheating.
:-)  I plan to convert it all over to Python & TurboGears eventually,
but since this is only a weekend project, that will take some more
time.

So... I think with your help I now know a high-effort way to solve my
problem. What I would really like to do is find a more TurboGears-like
way :) in which I could somehow tell SQLObject (or whichever other
component is responsible) that my database has 'iso-8859-1' column
data, and have the system handle the conversions automatically. 

Any ideas? Am I overlooking something? Is there a better approach?

Thanks again!

Sincerely,
Daniel



P.S.: Here is a transcript of the exception that is throw. I can't
really read a whole lot out of it, but maybe someone else could.

-----------------------------
500 Internal error

The server encountered an unexpected condition which prevented it from
fulfilling the request.

Page handler: <bound method Root.db2 of <stammbaum.controllers.Root
object at 0x01C21090>>
Traceback (most recent call last):
  File
"c:\dev\python\lib\site-packages\CherryPy-2.2.0-py2.4.egg\cherrypy\_cphttptools.py",
line 106, in _run
    self.main()
  File
"c:\dev\python\lib\site-packages\CherryPy-2.2.0-py2.4.egg\cherrypy\_cphttptools.py",
line 255, in main
    body = page_handler(*virtual_path, **self.params)
  File "<string>", line 3, in db2
  File
"c:\dev\python\lib\site-packages\TurboGears-0.9a4-py2.4.egg\turbogears\controllers.py",
line 211, in expose
    output = database.run_with_transaction(expose._expose,func,
accept, allow_json, allow_json_from_config,*args, **kw)
  File
"c:\dev\python\lib\site-packages\TurboGears-0.9a4-py2.4.egg\turbogears\database.py",
line 216, in run_with_transaction
    retval = func(*args, **kw)
  File "<string>", line 5, in _expose
  File
"c:\dev\python\lib\site-packages\TurboGears-0.9a4-py2.4.egg\turbogears\controllers.py",
line 232, in <lambda>
    expose._expose.when(rule)(lambda _func, accept, allow_json,
allow_json_from_config,*args,**kw: _execute_func(
  File
"c:\dev\python\lib\site-packages\TurboGears-0.9a4-py2.4.egg\turbogears\controllers.py",
line 265, in _execute_func
    return _process_output(output, template, format, content_type,
mapping, fragment)
  File
"c:\dev\python\lib\site-packages\TurboGears-0.9a4-py2.4.egg\turbogears\controllers.py",
line 56, in _process_output
    mapping=mapping, content_type=content_type,fragment=fragment)
  File
"c:\dev\python\lib\site-packages\TurboGears-0.9a4-py2.4.egg\turbogears\view\base.py",
line 131, in render
    return engine.render(**kw)
  File
"c:\dev\python\lib\site-packages\TurboKid-0.9.3-py2.4.egg\turbokid\kidsupport.py",
line 154, in render
    return t.serialize(encoding=self.defaultencoding, output=format,
fragment=fragment)
  File
"c:\dev\python\lib\site-packages\kid-0.9.1-py2.4.egg\kid\__init__.py",
line 236, in serialize
    return serializer.serialize(self, encoding, fragment)
  File
"c:\dev\python\lib\site-packages\kid-0.9.1-py2.4.egg\kid\serialization.py",
line 51, in serialize
    text = list(self.generate(stream, encoding, fragment))
  File
"c:\dev\python\lib\site-packages\kid-0.9.1-py2.4.egg\kid\serialization.py",
line 327, in generate
    for ev, item in self.apply_filters(stream):
  File
"c:\dev\python\lib\site-packages\kid-0.9.1-py2.4.egg\kid\serialization.py",
line 84, in balancing_filter
    for ev, item in stream:
  File
"c:\dev\python\lib\site-packages\kid-0.9.1-py2.4.egg\kid\pull.py",
line 206, in _coalesce
    for ev, item in stream:
  File
"c:\dev\python\lib\site-packages\kid-0.9.1-py2.4.egg\kid\filter.py",
line 21, in transform_filter
    for ev, item in apply_matches(stream, template, templates,
apply_func):
  File
"c:\dev\python\lib\site-packages\kid-0.9.1-py2.4.egg\kid\filter.py",
line 25, in apply_matches
    for ev, item in stream:
  File
"c:\dev\python\lib\site-packages\kid-0.9.1-py2.4.egg\kid\pull.py",
line 164, in _track
    for p in stream:
  File
"c:\dev\python\lib\site-packages\kid-0.9.1-py2.4.egg\kid\pull.py",
line 214, in _coalesce
    text += to_unicode(value, encoding)
  File
"c:\dev\python\lib\site-packages\kid-0.9.1-py2.4.egg\kid\pull.py",
line 190, in to_unicode
    return unicode(value, encoding)
UnicodeDecodeError: 'ascii' codec can't decode byte 0xe4 in position
1: ordinal not in range(128)

Powered by CherryPy 2.2.0

--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"TurboGears" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at http://groups.google.com/group/turbogears
-~----------~----~----~----~------~----~------~--~---

Reply via email to