How do I automate the removal of all non-ascii characters from my code?

Alec Taylor alec.taylor6 at
Mon Sep 12 04:33:14 EDT 2011

from creole import html2creole

from BeautifulSoup import BeautifulSoup

VALID_TAGS = ['strong', 'em', 'p', 'ul', 'li', 'br', 'b', 'i', 'a', 'h1', 'h2']

def sanitize_html(value):

   soup = BeautifulSoup(value)

   for tag in soup.findAll(True):
       if not in VALID_TAGS:
           tag.hidden = True

   return soup.renderContents()
   <p class="Standard"
[more stuff here]

On Mon, Sep 12, 2011 at 6:17 PM, Gary Herron <gherron at> wrote:
> On 09/12/2011 12:49 AM, Alec Taylor wrote:
>> Good evening,
>> I have converted ODT to HTML using LibreOffice Writer, because I want
>> to convert from HTML to Creole using python-creole. Unfortunately I
>> get this error: "File "Convert to", line 17
>> SyntaxError: Non-ASCII character '\xe2' in file Convert to
>> on line 18, but no encoding declared; see
>> for details".
>> Unfortunately I can't post my document yet (it's a research paper I'm
>> working on), but I'm sure you'll get the same result if you write up a
>> document in LibreOffice Writer and add some End Notes.
>> How do I automate the removal of all non-ascii characters from my code?
>> Thanks for all suggestions,
>> Alec Taylor
> This question does not quite make sense.  The error message is complaining
> about a python file.  What does that file have to do with ODT to HTML
> conversion and LibreOffice?
> The error message means the python file (wherever it came from) has a
> non-ascii character (as you noted), and so it needs something to tell it
> what such a character means.  (That what the encoding is.)
> A comment like this in line 1 or 2 will specify an encoding:
>  # -*- coding: <encoding name> -*-
> but, we'll have to know more about the file "Convert to" to guess
> what encoding name should be specified there.
> You might try utf-8 or latin-1.
> --

More information about the Python-list mailing list