Log message for revision 72014: added monkeypatch to workaround unicode incompatibility in zope.tal.xmlparsers.XMLParser.parseString()
Changed: U Zope/trunk/lib/python/Products/PageTemplates/__init__.py -=- Modified: Zope/trunk/lib/python/Products/PageTemplates/__init__.py =================================================================== --- Zope/trunk/lib/python/Products/PageTemplates/__init__.py 2007-01-14 09:14:57 UTC (rev 72013) +++ Zope/trunk/lib/python/Products/PageTemplates/__init__.py 2007-01-14 09:42:19 UTC (rev 72014) @@ -31,3 +31,25 @@ # Import lazily, and defer initialization to the module import ZopePageTemplate ZopePageTemplate.initialize(context) + + +# HACK!!! +# We need to monkeypatch the parseString method of the Zope 3 +# XMLParser since the internal ZPT representation uses unicode +# however the XMLParser (using Expat) can only deal with standard +# Python strings. However we won't and can't convert directly +# to UTF-8 within the ZPT wrapper code. +# Unicode support for (this issue) should be directly added +# to zope.tal.xmlparser however this requires a new Zope 3.3.X +# release. For now we fix it here. + +from zope.tal.xmlparser import XMLParser +import logging + +def parseString(self, s): + if isinstance(s, unicode): + s = s.encode('utf-8') + self.parser.Parse(s, 1) + +XMLParser.parseString = parseString +logging.info('Monkeypatching zope.tal.xmlparser.XMLParser.parseString()') _______________________________________________ Zope-Checkins maillist - Zope-Checkins@zope.org http://mail.zope.org/mailman/listinfo/zope-checkins