diff --git a/addons/pad/pad.py b/addons/pad/pad.py index 0a72e2abde3..1379e06f184 100644 --- a/addons/pad/pad.py +++ b/addons/pad/pad.py @@ -57,7 +57,7 @@ class pad_common(osv.osv_memory): #get content of the real field for record in model.browse(cr, uid, [context["object_id"]]): if record[real_field]: - myPad.setText(path, html2plaintext(record[real_field])) + myPad.setText(path, (html2plaintext(record[real_field]).encode('utf-8'))) #Etherpad for html not functional #myPad.setHTML(path, record[real_field]) diff --git a/openerp/tools/mail.py b/openerp/tools/mail.py index 425a7ff9c7d..fdcb44e040d 100644 --- a/openerp/tools/mail.py +++ b/openerp/tools/mail.py @@ -213,6 +213,7 @@ def html2plaintext(html, body_id=None, encoding='utf-8'): html = html.replace(' ' * 2, ' ') html = html.replace('>', '>') html = html.replace('<', '<') + html = html.replace('&', '&') # strip all lines html = '\n'.join([x.strip() for x in html.splitlines()]) @@ -375,4 +376,4 @@ def email_split(text): # sometimes returns emails without at least '@'. The '@' # is strictly required in RFC2822's `addr-spec`. if addr[1] - if '@' in addr[1]] \ No newline at end of file + if '@' in addr[1]]