[Python-de] Re: XML, Umlaute, Unicode, Projektorganisation, RPC, MPUC - Wer bietet mehr?

Thomas Heller theller at python.net
Mit Jul 23 20:38:52 EDT 2003


martin at v.loewis.de (Martin v. =?iso-8859-15?q?L=F6wis?=) writes:

> Thomas Heller <theller at python.net> writes:
>
>> # -*- encoding: latin-1 -*-
>> 
>> dumb = u"blöd"
>
> In etwa so (besser: "coding", nicht "encoding" - dann versteht das
> auch der Emacs).

Ok. Leider XEmacs (unter Windows) nicht, da es den nicht als Mule gibt.

>
>> Das sollte dann in 2.2 und in 2.3 richtig sein
>
> Leider nur 2.3. IDLE kann das (1.0) und ein paar andere Editoren;
> Python 2.3 erzeugt den _richtigen_ Unicode-String, und print gibt
> ihn auf alle möglichen Terminalfenster (einschließlich cmd.exe)
> richtig aus.

Ich hab das anscheinend doch noch nicht verstanden.

1. Woher weiß Python welche Kodierung die Console benutzt?

2. Ich habe PEP 263 so verstanden, daß es nur um Unicode Literale im
Quelltext geht, die dann wohl bei der Kompilierung in unicode Objekte
umgewandelt werden.  Daher ist dann auch das Encoding aus dem comment
später nicht mehr zugänglich (weil es auch garnicht mehr gebraucht
wird).

3. Ich habe in dem Beispiel oben latin-1 hingeschrieben, weil ich PEP
263 so verstanden habe daß das in Python 2.1 und 2.2 der Default ist,
und ich dachte daß das Ganze dann portabel zwischen 2.2 und 2.3 ist.
Scheint aber nicht so zu sein.

> Für koreanische Zeichen im Quelltext empfehle ich, UTF-8 als Kodierung
> zu verwenden. Manche Leute empfehlen, das grundsätzlich zu tun - falls
> alle nicht-ASCII-Strings im Quelltext Unicode-Strings sind, spricht
> auch nichts dagegen.

Es geht mir um eine Python Quelldatei die als Konfigurationsscript
dient. Möglicherweise tippen dann doch koreanische Benutzer (keine
Programmierer) darin herum, daher lieber explizite Zeichen als
Escapesequenzen. Mit utf-8 Kodierung und notfalls Notepad als Editor
sollte das dann also (in 2.3) gehen?

Danke,

Thomas