I have been busy with zope.formlib. See this weblog entry for some background:
http://maurits.vanrees.org/weblog/archive/2007/11/search-forms-with-zope-formlib-and-batching This is Plone 3 with Zope 2.10.4 btw. I discovered there is a difference between getting a value from the request or from request.form when unicode is involved. From a pdb session: >>> request.form.get('SearchableText') u'\xff' >>> request.get('SearchableText') '\xc3\xbf' This is the character ÿ: a y with something extra on top. :) You can see the same in a python prompt (I hope this is readable for everyone): >>> u"ÿ" u'\xff' >>> "ÿ" '\xc3\xbf' This gave me problems while using zope.formlib. In the method zope.app.form.browser.textwidgets.TextWidget._getFormInput() the value is fetched from the request and not request.form. So you get a UnicodeDecodeError. In the weblog entry I mentioned I post some code to guard against that in a setUpWidgets method in your own form page: deliberately overwrite the variable in the request by the variable in request.form. But what I want to ask here is: does something need to be fixed somewhere in zope? Should the value in request and request.form really be the same always? Probably: always unicode? Should zope.app.form.browser.textwidgets.TextWidget._getFormInput() get the value from the form instead of from the request? Thanks, -- Maurits van Rees | http://maurits.vanrees.org/ [NL] Work | http://zestsoftware.nl/ "Do not worry about your difficulties in computers, I can assure you mine are still greater." _______________________________________________ Zope-Dev maillist - Zope-Dev@zope.org http://mail.zope.org/mailman/listinfo/zope-dev ** No cross posts or HTML encoding! ** (Related lists - http://mail.zope.org/mailman/listinfo/zope-announce http://mail.zope.org/mailman/listinfo/zope )