[Python-de] utf8

Stefan Schwarzer sschwarzer at sschwarzer.net
So Dez 28 10:02:27 CET 2014


On 2014-12-28 09:32, Hermann Riemann wrote:
[Encoding in Quelltexten]
> Meine aktuellen Dateien.py sehen etwas so aus: 
> 
> #!/usr/bin/python3
> # -*- coding: utf-8 -*-

  # coding: utf-8

reicht übrigens auch, siehe
https://www.python.org/dev/peps/pep-0263/ .

In Python 2 ist ASCII das Standard-Encoding für
Quelltext-Dateien, in Python 3 ist es UTF-8.

[Encoding von Daten während der Laufzeit]
> import codecs
> ..
> f=codecs.open(dateiname,'r',"utf8")
> ..

Ich würde die Funktion `open` aus dem `io`-Modul nehmen:

  import io

  fobj = io.open(dateiname, "r", encoding="utf8")

beziehungsweise

  with io.open(dateiname, "r", encoding="utf8") as fobj:
      ...

Achtung: So geöffnete Dateien arbeiten nur mit
Unicode-Strings, was ich aber normalerweise für eine gute
Sache halte. Details siehe
https://docs.python.org/2.7/library/io.html#io.open

`io.open` gibt es ab Python 2.6, also auch in Python 3.
`io.open` ist identisch mit der eingebauten `open`-Funktion
in Python 3.

> Hermann
>    der in jeder von ihm verwendete Programmiersprache
>    utf-8 Problem hatte oder hat.

Welche Art von Problem(en)?

Viele Grüße
Stefan


Mehr Informationen über die Mailingliste python-de