On 19 Mar 2006, at 19:11, Dieter Maurer wrote:
This means that almost surely your "non-ascii" was not encoded in UTF-8. Encode them this way and it will work.
Here's a test template that I created through the ZMI: <?xml version="1.0" encoding="utf-8"?> <html xmlns:tal="http://xml.zope.org/namespaces/tal" tal:define="dummy python:request.RESPONSE.setHeader('content- type', 'text/html;;charset=UTF-8')"> <body> <form> <input name="blah" type="text" tal:attributes="value python:chr (200).encode('utf-8')" /> </form> </body> </html> This gives: Error Type: UnicodeDecodeError Error Value: 'ascii' codec can't decode byte 0x80 in position 0: ordinal not in range(128) If I change the input line to: <input name="blah" type="text" tal:attributes="value python:chr(200)" /> Then this will work in HTML mode but will fail in XML mode.
Finally, I tried tal:attributes with my function and the structure keyword but 'structure' isn't supported with tal:attributes.
I have extended our local Zope to support "structure" for attributes as well.
I had a look in TAL, and at the bottom of TALDefs.py is a function called attrEscape(s) which correctly escapes attributes but unfortunately this function doesn't seem to be used.
I could provide patches, if useful.
I would be very interested to see you patches. Thanks in advance Andrew -- Logicalware Ltd Stuart House, Eskmills, Musselburgh, EH21 7PQ, UK Tel: +44(0)131 273 5130 http://www.logicalware.com