Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Python Windows release and encoding

11 views
Skip to first unread message

Absalom K.

unread,
May 22, 2013, 8:10:01 AM5/22/13
to
Hi, I am working on Linux; a friend of mine sends to me python files from
his Windows release. He uses the editor coming with the release; he runs
his code from the editor by using a menu (or some F5 key I think).

He doesn't declare any encoding in his source file; when I want to try
his code, I have an error since he obviously uses non-ascii characters.
As far as I can see, he uses utf8 without knowing it. I add the UTF8
declaration, run the code, and everything is fine.

Then I tell him to add the utf-8 declaration; but now he has an error
when running his file from the Windows editor.

Finally, he told me he could run the file by declaring the latin-1
encoding.

But I want to understand exactly:
a) what is the encoding used by the editor coming in the Windows release?
b) why doesn't he need to declare the encoding (I need it on Linux for
the very same files)?

Best regards, ak.

Peter Otten

unread,
May 22, 2013, 8:39:15 AM5/22/13
to pytho...@python.org
Your friend may be using an old version of Python. Quoting

<http://www.python.org/dev/peps/pep-0263/>

"""
For backwards-compatibility with existing code which currently
uses non-ASCII in string literals without declaring an encoding,
the implementation will be introduced in two phases:

1. Allow non-ASCII in string literals and comments, by internally
treating a missing encoding declaration as a declaration of
"iso-8859-1". This will cause arbitrary byte strings to
correctly round-trip between step 2 and step 5 of the
processing, and provide compatibility with Python 2.2 for
Unicode literals that contain non-ASCII bytes.

A warning will be issued if non-ASCII bytes are found in the
input, once per improperly encoded input file.

2. Remove the warning, and change the default encoding to "ascii".

[...]

Implementation of steps 1 and 2 above were completed in 2.3,
except for changing the default encoding to "ascii".

The default encoding was set to "ascii" in version 2.5.
"""

0 new messages