Python Windows release and encoding

A

Absalom K.

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.
 
P

Peter Otten

Absalom said:
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.

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.
"""
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

No members online now.

Forum statistics

Threads
473,769
Messages
2,569,582
Members
45,057
Latest member
KetoBeezACVGummies

Latest Threads

Top