[Zope-dev] UnicodeDecodeError from PageTemplate rendering after upgrading to Zope 2.12.7

Robert Casties casties at mpiwg-berlin.mpg.de
Tue Aug 31 16:28:22 EDT 2010


Hi Chris,

On 08/31/2010 11:40 AM, Chris Withers wrote:
> After a recent upgraded to Zope 2.12, I'm now seeing errors like the 
> following when using IE (version 8) or Safari (version 4.0.3) to view 
> page templates. Chrome and Firefox work fine.

This may be related to IE and Safari not sending an accept-charset
header and Zope then falling back to the Python default (often ASCII)
for encoding, which then fails.

I use the following patch to http.py (tested up to 2.12.3):

--- lib/python/zope/publisher/http.py.orig      2009-05-02
00:49:35.000000000 -0700
+++ lib/python/zope/publisher/http.py   2009-06-12 02:12:50.000000000 -0700
@@ -965,8 +965,11 @@
         # value of 1 if not explicitly mentioned.
         # And quoting RFC 2616, $14.2: "If no Accept-Charset header is
         # present, the default is that any character set is acceptable."
-        if not sawstar and not sawiso88591 and header_present:
+        # ROC: the following checked also for header_present which
seemed wrong
+        if not sawstar and not sawiso88591:
             charsets.append((1.0, 'iso-8859-1'))
+            # ROC: if there is no header we assume star (to get utf-8)
+            sawstar = 1
         # UTF-8 is **always** preferred over anything else.
         # Reason: UTF-8 is not specific and can encode the entire unicode
         # range , unlike many other encodings. Since Zope can easily
use very


Best
	Robert




More information about the Zope-Dev mailing list