[Python-de] print von Nicht-ASCII-Zeichen

Andreas Pakulat apaku at gmx.de
Mon Aug 28 16:07:03 CEST 2006


On 28.08.06 15:11:17, Stefan Schwarzer wrote:
> Hallo Alexander,
> 
> On 2006-08-28 12:43, Alexander 'boesi' Bösecke wrote:
> > Mein Problem ist nun, dass wenn stdout nicht sichtbar ist (also auch
> > nicht umgeleitet wird) und mit print Nicht-ASCII-Zeichen ausgegeben
> > werden, werden alle nachfolgenden Befehle schlicht ignoriert. Das
> > angehängte use_wx.py demonstriert dies. Wird das Programm mit 'python
> > use_wx.py' ausgeführt, erscheinen 2 Message-Boxes und 'ä' wird auf
> > stdout ausgegeben. Wird das Programm dagegen mit 'pythonw.exe ausgeführt,
> > erscheint nur die 1. Message-Box. Wird 'ä' durch 'a' ersetzt, erscheinen
> > in jedem Fall 2 Message-Boxes.
> 
> wenn ich dein Beispiel-Progrämmchen use_wx.py auf meinem Rechner
> (Gentoo Linux) in einem xterm ausführe, bekomme ich nach dem
> Klick auf die Schaltfläche "Test" einen Traceback:
> 
> Traceback (most recent call last):
>   File "/tmp/use_wx.py", line 15, in test
>     print u'ä'
> UnicodeEncodeError: 'ascii' codec can't encode character u'\xe4' in position 0: ordinal not in range(128)

Dann hast du die erste Zeile des Programms entfernt oder benutzt ein
uraltes Python. Offensichtlich denkt dein Python naemlich der Quellcode
waere in ascii, ist er aber nicht, was auch mit der Zeile

# -*- coding: utf_8 -*-

angegeben wird. Hier mit python2.4 funktioniert das wunderbar, sowohl
mit UTF-8 als auch Latin1 Umgebung.

Andreas

-- 
Your motives for doing whatever good deed you may have in mind will be
misinterpreted by somebody.



More information about the python-de mailing list