
Hi Am 28.08.2006 17:41:28 schrieb Diez B. Roggisch:
Was aber auf jeden Fall klappen sollte: sys.stdout durch einen encoding-stream aus dem codecs modul zu ersetzen. Dann sollte das unter allen Umstaenden gehen.
Also etwa so in der Art:
sys.stdout = codecs.EncodedFile(sys.stdout, data_encoding="utf-8", errors="foo")
Wenn ich in die beiden oben geposteten Skripte das einfüge: ---snip--- import sys, codecs sys.stdout = codecs.EncodedFile(sys.stdout, data_encoding='utf8', file_encoding='utf8', errors='replace') ---snap--- ... bekomme ich folgenden Fehler: ---snip--- Traceback (most recent call last): File "only_w32.py", line 8, in ? print u'+ñ' File "c:\tools\python\Lib\codecs.py", line 508, in write data, bytesdecoded = self.decode(data, self.errors) UnicodeEncodeError: 'ascii' codec can't encode character u'\xe4' in position 0: ordinal not in range (128) ---snap--- Wie kommt da der ascii codec hin? Ich hab doch utf8 angegeben, oder nicht?
Das foo ist natuerlich unsinn - aber ich finde im Moment nicht die moeglichen Werte ausser dem default strict - welcher an dieser Stelle fuer debugging-Zwecke vielleicht duerch eine relaxtere Variante ersezts werden sollte.
aus der Python-Doku zu codecs.register(): ---snip--- Possible values for errors are 'strict' (raise an exception in case of an encoding error), 'replace' (replace malformed data with a suitable replacement marker, such as "?"), 'ignore' (ignore malformed data and continue without further notice), 'xmlcharrefreplace' (replace with the appropriate XML character reference (for encoding only)) and 'backslashreplace' (replace with backslashed escape sequences (for encoding only)) as well as any other error handling name defined via register_error(). ---snap--- cu boesi PS: Den Traceback bekomm ich natürlich nur zu sehen, wenn ich python.exe verwende. Bei pythonw.exe seh ich wie gehabt nix, aber das Verhalten ist das gleiche. -- <THammY-> und meine hände ham bisher immer nur das gemacht was ich will </THammY> _______________________________________________ python-de maillist - python-de@python.net http://python.net/mailman/listinfo/python-de