# HG changeset patch # User paulb # Date 1095012498 0 # Node ID 89217f1a46435b59b1f1c10d1dbd8179a2353cc1 # Parent 879f981d30e0799057eafaf6a933ac5e146b6217 [project @ 2004-09-12 18:08:18 by paulb] Fixed response stream encoding definition and added a new method, get_response_stream_encoding, to discover the encoding used. diff -r 879f981d30e0 -r 89217f1a4643 WebStack/BaseHTTPRequestHandler.py --- a/WebStack/BaseHTTPRequestHandler.py Mon Sep 06 21:36:02 2004 +0000 +++ b/WebStack/BaseHTTPRequestHandler.py Sun Sep 12 18:08:18 2004 +0000 @@ -329,10 +329,20 @@ # Unicode can upset this operation. Using either the specified charset # or a default encoding. + encoding = self.get_response_stream_encoding() + return ConvertingStream(self.content, encoding) + + def get_response_stream_encoding(self): + + """ + Returns the response stream encoding. + """ + if self.content_type: encoding = self.content_type.charset - encoding = encoding or self.default_charset - return ConvertingStream(self.content, encoding) + else: + encoding = None + return encoding or self.default_charset def get_response_code(self): diff -r 879f981d30e0 -r 89217f1a4643 WebStack/CGI.py --- a/WebStack/CGI.py Mon Sep 06 21:36:02 2004 +0000 +++ b/WebStack/CGI.py Sun Sep 12 18:08:18 2004 +0000 @@ -319,10 +319,20 @@ # Unicode can upset this operation. Using either the specified charset # or a default encoding. + encoding = self.get_response_stream_encoding() + return ConvertingStream(self.content, encoding) + + def get_response_stream_encoding(self): + + """ + Returns the response stream encoding. + """ + if self.content_type: encoding = self.content_type.charset - encoding = encoding or self.default_charset - return ConvertingStream(self.content, encoding) + else: + encoding = None + return encoding or self.default_charset def get_response_code(self): diff -r 879f981d30e0 -r 89217f1a4643 WebStack/Generic.py --- a/WebStack/Generic.py Mon Sep 06 21:36:02 2004 +0000 +++ b/WebStack/Generic.py Sun Sep 12 18:08:18 2004 +0000 @@ -369,6 +369,14 @@ raise NotImplementedError, "get_response_stream" + def get_response_stream_encoding(self): + + """ + Returns the response stream encoding. + """ + + raise NotImplementedError, "get_response_stream_encoding" + def get_response_code(self): """ diff -r 879f981d30e0 -r 89217f1a4643 WebStack/JavaServlet.py --- a/WebStack/JavaServlet.py Mon Sep 06 21:36:02 2004 +0000 +++ b/WebStack/JavaServlet.py Sun Sep 12 18:08:18 2004 +0000 @@ -365,6 +365,14 @@ return self.response.getWriter() + def get_response_stream_encoding(self): + + """ + Returns the response stream encoding. + """ + + return self.response.getCharacterEncoding() + def get_response_code(self): """ diff -r 879f981d30e0 -r 89217f1a4643 WebStack/ModPython.py --- a/WebStack/ModPython.py Mon Sep 06 21:36:02 2004 +0000 +++ b/WebStack/ModPython.py Sun Sep 12 18:08:18 2004 +0000 @@ -300,10 +300,20 @@ # Unicode can upset this operation. Using either the specified charset # or a default encoding. + encoding = self.get_response_stream_encoding() + return ConvertingStream(self.trans, encoding) + + def get_response_stream_encoding(self): + + """ + Returns the response stream encoding. + """ + if self.content_type: encoding = self.content_type.charset - encoding = encoding or self.default_charset - return ConvertingStream(self.trans, encoding) + else: + encoding = None + return encoding or self.default_charset def get_response_code(self): diff -r 879f981d30e0 -r 89217f1a4643 WebStack/Twisted.py --- a/WebStack/Twisted.py Mon Sep 06 21:36:02 2004 +0000 +++ b/WebStack/Twisted.py Sun Sep 12 18:08:18 2004 +0000 @@ -293,10 +293,20 @@ # Unicode can upset this operation. Using either the specified charset # or a default encoding. + encoding = self.get_response_stream_encoding() + return ConvertingStream(self.trans, encoding) + + def get_response_stream_encoding(self): + + """ + Returns the response stream encoding. + """ + if self.content_type: encoding = self.content_type.charset - encoding = encoding or self.default_charset - return ConvertingStream(self.trans, encoding) + else: + encoding = None + return encoding or self.default_charset def get_response_code(self): diff -r 879f981d30e0 -r 89217f1a4643 WebStack/Webware.py --- a/WebStack/Webware.py Mon Sep 06 21:36:02 2004 +0000 +++ b/WebStack/Webware.py Sun Sep 12 18:08:18 2004 +0000 @@ -284,10 +284,20 @@ # Unicode can upset this operation. Using either the specified charset # or a default encoding. + encoding = self.get_response_stream_encoding() + return ConvertingStream(self.trans.response(), encoding) + + def get_response_stream_encoding(self): + + """ + Returns the response stream encoding. + """ + if self.content_type: encoding = self.content_type.charset - encoding = encoding or self.default_charset - return ConvertingStream(self.trans.response(), encoding) + else: + encoding = None + return encoding or self.default_charset def get_response_code(self): diff -r 879f981d30e0 -r 89217f1a4643 WebStack/Zope.py --- a/WebStack/Zope.py Mon Sep 06 21:36:02 2004 +0000 +++ b/WebStack/Zope.py Sun Sep 12 18:08:18 2004 +0000 @@ -283,10 +283,20 @@ # Unicode can upset this operation. Using either the specified charset # or a default encoding. + encoding = self.get_response_stream_encoding() + return ConvertingStream(self.response, encoding) + + def get_response_stream_encoding(self): + + """ + Returns the response stream encoding. + """ + if self.content_type: encoding = self.content_type.charset - encoding = encoding or self.default_charset - return ConvertingStream(self.response, encoding) + else: + encoding = None + return encoding or self.default_charset def get_response_code(self):