There's a good chance this is fixed in FormEncode trunk. Try
easy_install FormEncode==dev
[EMAIL PROTECTED] wrote:
> Hi,
>
> I am using pylons with formencode and international setting set to
> 'cs':
>
> formencode.api.set_stdtranslation(domain="FormEncode",
> languages=['cs'])
>
> However, I don't know if it's a problem between the keyboard and
> chair, I have encountered a few UnicodeErrors. For example I have an
> login form where I am simply controlling the length of login:
>
> # a draft
> class UserController(BaseController):
> def login(self):
> if not len(request.params):
> return render('/user-login.mako')
>
> try:
> form_result =
> form.LoginSchema().to_python(request.params)
>
> except formencode.Invalid, e:
> defaults = request.params
> errors = e.error_dict
> return formencode.htmlfill.render(render('/user-
> login.mako'), defaults, errors, encoding='utf-8')
>
> else:
> return 'yupi'
>
> when I call it with not set variables, it should display a
> nationalized response "type a value", but instead I get an
> UnicodeError exception in formencode/htmlfill.py:110:
>
>>> return cgi.escape(str(v), 1)
> exceptions.UnicodeEncodeError: 'ascii' codec can't encode character
> u'\xed' in position 4: ordinal not in range(128)
>
> I am doing something wrong?
>
> I found 2 "hacks" to resolve it:
> 1) patch htmlfill.py, replace line 110 with this:
> return cgi.escape(unicode(v), 1)
>
> or (for those who are forced to use standard or old packages)
> 2) create a function and preprocess e.error_dict:
>
> def fix_bug(exceptions):
> ret = exceptions
>
> for k in ret.keys():
> ret[k].args = unicode(exceptions[k].args).encode('utf-8')
> ret[k].msg = unicode(exceptions[k].msg).encode('utf-8')
> ret[k].value = unicode(exceptions[k].value).encode('utf-8')
>
> return ret
>
>
> errors = fix_bug(e.error_dict)
>
> Any thoughts?
>
> Karol
> >
--
Ian Bicking : [EMAIL PROTECTED] : http://blog.ianbicking.org
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups
"pylons-discuss" 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/pylons-discuss?hl=en
-~----------~----~----~----~------~----~------~--~---