is there a way to get the encoding of python file

Robert Kern robert.kern at gmail.com
Mon Sep 13 22:31:19 CEST 2010


On 9/13/10 2:00 PM, Stef Mientki wrote:
>   On 12-09-2010 19:28, Robert Kern wrote:
>> On 9/12/10 4:14 AM, Stef Mientki wrote:
>>>    hello,
>>>
>>> Is it possible to get the encoding of a python file from the first source line,
>>> (if there's any),
>>> after importing it ( with '__import__' )
>>>
>>> # -*- coding: windows-1252 -*-
>>
>> The regular expression used to match the encoding declaration is given here:
>>
>> http://docs.python.org/reference/lexical_analysis.html#encoding-declarations
>>
> yes, but then I've to read the first line of the file myself.
>
> In the meanwhile I found  another (better ?) solution, (I'm using Python 2.6)
>
>
> Place these 2 lines at the top of the file
> # -*- coding: windows-1252 -*-
> from __future__ import unicode_literals
>
> or these
> # -*- coding: utf-8 -*-
> from __future__ import unicode_literals
>
> then you always get the correct unicode string back.

Ah. I see. You don't actually need to know the encoding; you just want to use 
literals with raw, unescaped characters embedded in them.

This may interfere with the cases when you need a real str object. In Python 
2.x, if you want a unicode literal, just use one like so: u'ß'. As long as the 
encoding declaration is correct, this will work just fine.

-- 
Robert Kern

"I have come to believe that the whole world is an enigma, a harmless enigma
  that is made terrible by our own mad attempt to interpret it as though it had
  an underlying truth."
   -- Umberto Eco




More information about the Python-list mailing list