Python3 nutzt per Default das
UTF-8 encoding für I/O und Strings, das ist weit
verbreiteter Standard mit dem vielerlei Zeichen dargestellt werden können
(deutsche Umlaute, kyrillische Zeichen, asiatische Zeichen, Emojis, ...), siehe z.B.
Wikipedia UTF-8.
Wenn man Glück hat reicht das zum Darstellen und Verarbeiten von Texten.
Es kann aber auch einiges schief gehen:
- Input Datei in anderem encoding abgespeichert, gängig ist z.B.
ISO-8859.
Wenn das encoding bekannt ist kann das beim File-open spezifiziert werden:
f=open("vorwahl.txt",encoding='iso-8859-1')
beim lesen des Files wird der Text dann automatisch in UTF-8 umgewandelt.
- Umgebung setzt anderes Encoding, check mit:
import locale
locale.getpreferredencoding()
Ggf. dann auch explizit setzen beim Öffnen des Files.
- Andere Encoding Einstellung des Shell Fensters, Editors, etc., verhindert korrekte
Darstellung bei der Ausgabe
- ...
Unbedingt vermeiden: Umlaute in Namen für Variablen,
Funktionen, Klassen, ...