Wie kann man Python umgehen? "WindowsError-Nachrichten sind nicht richtig codiert" -Problem?

Es ist ein Problem, wenn Python einen WindowsError auslöst. Die Kodierung der Nachricht der Ausnahme ist immer os-native-kodiert. Beispielsweise

import os
os.remove('does_not_exist.file')

Nun, hier gibt es eine Ausnahme:

Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
WindowsError: [Error 2] 系統找不到指定的檔案。: 'does_not_exist.file'

Da die Sprache meines Windows7 traditionelles Chinesisch ist, wird die Standardfehlermeldung in Big5-Codierung (bekannt als CP950) angezeigt.

>>> try:
...     os.remove('abc.file')
... except WindowsError, value:
...     print value.args
...
(2, '\xa8t\xb2\xce\xa7\xe4\xa4\xa3\xa8\xec\xab\xfc\xa9w\xaa\xba\xc0\xc9\xae\xd7\xa1C')
>>>

Wie Sie hier sehen, ist die Fehlermeldung kein Unicode. Wenn ich versuche, sie auszudrucken, erhalte ich eine weitere Codierungsausnahme. Hier ist das Problem, es kann in der Python-Problemliste gefunden werden:http: //bugs.python.org/issue175

Die Frage ist, wie Sie das umgehen können. Wie erhalte ich die native Codierung von WindowsError? Die Version von Python, die ich verwende, ist 2.6.

Vielen Dank

Antworten auf die Frage(3)

Ihre Antwort auf die Frage