I have a python (2.5.4) script which I run in cygwin (in a DOS box on Windows XP). I want to include a pound sign (£) in the output. If I do so, I get this error:
SyntaxError: Non-ASCII character '\xa3' in file dbscan.py on line 253, but no encoding declared; see http://www.python.org/peps/pep-0263.html for details
OK. So I looked at that PEP, and now tried adding this to the beginning of my script:
# coding=cp437
That stopped the error, but the output shows ú where it should show £.
I’ve tried ISO-8859-1 as well, with the same result.
Does anyone know which encoding I need?
Or where I could look to find out?
There are two encodings involved here:
It seems your output encoding is off now. If this is running in a terminal window in Cygwin, it is that terminal’s encoding that you need to match.
EDIT: I just ran the following Python program in a (native) Windows XP terminal window, thought it was slightly interesting:
156 is certainly not the codepoint for the pound sign in the Latin1 encoding you tried. It doesn’t seem to be in Window’s Codepage 1252 either, which I would expect my terminal to use … Weird.