Sudden error: SyntaxError: Non-ASCII character '\xc2' in file

Peter Otten __peter__ at web.de
Wed Mar 30 11:30:53 EDT 2011


Benjamin Kaplan wrote:

> On Wed, Mar 30, 2011 at 10:34 AM, Gnarlodious <gnarlodious at gmail.com>
> wrote:
>> RSS script runs fine on my dev machine but errors on the server
>> machine. Script was last run 3 days ago with no problem. Possible
>> clue: dev machine is (Mac OSX) running Python 3.1.1 while server is
>> running Python 3.1.3. I have not updated anything that should suddenly
>> cause this error starting yesterday.
>>
>> The error originates at '·' which string contains a ·
>> character.
>>
>> Complete error message is:
>>
>> SyntaxError: Non-ASCII character '\xc2' in file /Library/WebServer/
>> Sites/Sectrum/Site/Feed.py on line 17, but no encoding declared; see
>> http://www.python.org/peps/pep-0263.html for details
>>
>> Any help how to fix this and why it suddenly started erroring 2 days
>> ago...
>>
>> -- Gnarlie
> 
> You don't have a &middot character. Your computer doesn't understand
> "characters". You have the byte sequence \xc2\xb7. When you have a
> Unicode string (the default in Python 3), Python needs some way of
> converting the byte sequence to a character sequence. The way it does
> that is through the encoding. But you don't have an encoding
> specified, so rather than guess, Python is falling back on the lowest
> common denominator: ASCII, which doesn't understand the byte \xc2-
> hence the error.
> 
> To fix this, just put the line
> # coding=utf-8
> at the very top of the code file.

All good advice except that Python 3 defaults to UTF-8 not ASCII as its 
source encoding.



More information about the Python-list mailing list