[Python-de] Was sein sollte

Martin v. Loewis martin at v.loewis.de
Don Jan 1 13:41:28 CET 2004


kgm wrote:
> Warum also nicht was anbieten, um die Wünsche zu erfüllen?
> 
> Was spricht dagegen, in Py einen Befehl einzuführen, der es dem 
> Entwickler überlässt, sein gewünschtes Default-Encoding für sein Script 
> für Bytestrings zu setzen?

Da gibt es mehrere Probleme:

1. Das encoding gilt nicht für ein Skript, sondern für die
    ganze Anwendung - man weiss hinterher ja nicht mehr, welcher
    String jetzt in welchem Modul generiert wurde.

2. Bytestrings und Unicode-Strings, die "gleich" sein sollen
    (also sich durch das default encoding ineinander umwandeln
     lassen sollen), müssen den gleichen Hash-Wert besitzen,
    sonst kann man sie nicht zusammen in einen Dictionary
    verwenden. Das ist nicht implementierbar, wenn man beliebige
    Encodings zulässt.

3. Woher weißt Du, als Programmautor, eigentlich, welche Encodings
    Deine Bytestrings haben? Das hängt doch auch davon ab, welche
    Encodings der Nutzer verwendet.
    Tatsächlich kann der Nutzer gegenwärtig schon ein anderes als
    'us-ascii' als default encoding festlegen, indem er site.py
    ändert. Wenn Du sicher bist, dass Dein Skript ein bestimmtes
    Default encoding verwendet, mußt Du einfach sitecustomize.py
    anpassen.

> Vielleicht könnte man mit obigen Angabe in der Source auch gleich das 
> Default-Encoding für Bytestrings  vorbelegen?

Was ist, wenn mehrere Module einer Anwendung verschiedene source
encodings benutzen?

Ciao,
Martin