[Python-de] subprocess und encoding...

Diez B. Roggisch deets at web.de
Mon Jun 19 15:43:37 CEST 2006


> Das stimmt nicht ganz. Zwar spuckt z.B. sys.stdout.encoding unter
> Windows nur None aus, unter Linux hab ich da aber UTF-8.
> Wäre auch irgendwie merkwürdig, das die Objekte überhaupt ein Attribut
> .encoding haben, wenn das keinen Sinn macht...

Aus der Doku:

"""
encoding 
 The encoding that this file uses. When Unicode strings are written to a file, 
they will be converted to byte strings using this encoding. In addition, when 
the file is connected to a terminal, the attribute gives the encoding that 
the terminal is likely to use (that information might be incorrect if the 
user has misconfigured the terminal). The attribute is read-only and may not 
be present on all file-like objects. It may also be None, in which case the 
file uses the system default encoding for converting Unicode strings. 
New in version 2.3.
"""

Es ist also eher geraten. Aber zwischen Prozessen kennt unix kein encoding von 
pipes - das ist und bleibt deine Sache, auf beiden Seiten für korrekte 
en/dekodierung zu sorgen. Ich sehe in subprocess auch keinen Parameter, der 
das beeinflusst. Also bleibt es dabei: du musst die files wrappen.

> Also in der DB hab ich auf jeden Fall die richtigen Daten. Ich versuche
> generell alles in UTF-8 zu speichern. In PyLucid selber, aber auch in
> phpMyAdmin sehe ich die Umlaute korrekt. Von daher gehe ich mal einfach
> davon aus, das sie auch korrekt in der DB gespeichert werden ;)
>

Dann verstehe ich nicht, warum du nicht alles in utf-8 dekodieren kannst.

MfG Diez