[Erp5-report] r41862 kazuhiko - /erp5/trunk/products/PortalTransforms/transforms/safe_html.py
nobody at svn.erp5.org
nobody at svn.erp5.org
Wed Dec 29 15:40:42 CET 2010
Author: kazuhiko
Date: Wed Dec 29 15:40:41 2010
New Revision: 41862
URL: http://svn.erp5.org?rev=41862&view=rev
Log:
handle original character set.
Modified:
erp5/trunk/products/PortalTransforms/transforms/safe_html.py
Modified: erp5/trunk/products/PortalTransforms/transforms/safe_html.py
URL: http://svn.erp5.org/erp5/trunk/products/PortalTransforms/transforms/safe_html.py?rev=41862&r1=41861&r2=41862&view=diff
==============================================================================
--- erp5/trunk/products/PortalTransforms/transforms/safe_html.py [utf8] (original)
+++ erp5/trunk/products/PortalTransforms/transforms/safe_html.py [utf8] Wed Dec 29 15:40:41 2010
@@ -164,8 +164,10 @@ class StrippingParser(HTMLParser):
def handle_data(self, data):
if self.suppress: return
- if data:
- self.result.append(escape(data))
+ data = escape(data)
+ if self.original_charset and isinstance(data, str):
+ data = data.decode(self.original_charset)
+ self.result.append(data)
def handle_charref(self, name):
if self.suppress: return
@@ -252,6 +254,8 @@ class StrippingParser(HTMLParser):
k = len(self.rawdata)
data = self.rawdata[i+9:k]
j = k+3
+ if self.original_charset and isinstance(data, str):
+ data = data.decode(self.original_charset)
self.result.append("<![CDATA[%s]]>" % data)
else:
try:
@@ -278,11 +282,10 @@ def scrubHTML(html, valid=VALID_TAGS, na
default_encoding=default_encoding)
parser.feed(html)
parser.close()
- if parser.original_charset:
- result = parser.getResult().decode(parser.original_charset)\
- .encode(default_encoding)
- return result
- return parser.getResult()
+ result = parser.getResult()
+ if parser.original_charset and isinstance(result, str):
+ result = result.decode(parser.original_charset).encode(default_encoding)
+ return result
class SafeHTML:
"""Simple transform which uses CMFDefault functions to
More information about the Erp5-report
mailing list