[Python-de] utf8

Hermann Riemann nospam.ng at hermann-riemann.de
Di Dez 30 11:22:50 CET 2014


Andreas Jung schrieb:

>> #!/usr/bin/python3 
>> # -*- coding: utf-8 -*-
>> import codecs
>> 
>> ..
>> f=codecs.open(dateiname,'r',"utf8") 
>> ..
>> 
>> 
>> Ist die Zeile mit coding noch aktuell?
 
> Ja, aber die Coding Präambel hat absolut nichts mit dem 'encoding'
> Parameter von open() zu tun.

Die coding Zeile mußte ich, meiner Erinnerung nach,
noch in Python2.6 oder 2.7 einfügen
wenn ich in der *.py Datei Sonderzeichen verwendete.
Es diente dem Phyton interpreter beim Quelltext lesen.
Und ich hoffte, das es bei Python3 nicht mehr notwendig sei.
In 
https://docs.python.org/3/howto/unicode.html
steht:
The default encoding for Python source code is UTF-8
Danach könnte ich bei Python3 die Zeile weglassen.

Die (mit vi erzeugte) Datei, die
ä='ö'
print(ä)
enthält, läßt sich mit python3 ausführen

Ich vermute, es gibt jetzt folgende Fälle,
ich lasse das coding weg,
und wenn sich im System oder in Python das mit utf8
ändert bekomme ich Probleme, 
oder ich behalte eine coding Form,
und vergesse bei einer globalen Änderung des
 utf8 Formats aller Textdateien
diese coding Zeilen.

(Ich vermute, dass ich für den Rest meines Lebens
 bei utf8 bleibe. ) 

Das mit dem codecs habe ich irgendwo gelesen,
und es hat bei Dateien mit utf-Zeichen funktioniert.
Im Gegensatz zu
f=open(dateiname,'r')
wie es in diversen Bücher beschrieben ist.

Was ich machen werde, wenn ich nicht weis,
ob es utf8 oder ISO irgendwas ist, ( *.csv)
weis ich noch nicht.

Vermutlich es mit mit try versuchen
und bei exception
die mit os.system(iconv oder recode ..)
umcodierte Datei nochmal einlesen.

Hermann
   der vielleicht Zeilen mit coding: aus *.py entfernt

-- 
http://www.Hermann-Riemann.de


Mehr Informationen über die Mailingliste python-de