Skip,

    self.unique_name = os.path.join(dirname,
>                                            "%s.%s%s" % (self.hostname,
>                                                         tname,
>                                                         self.pid))
>
> raising a UnicodeDecodeError:
>
>    UnicodeDecodeError: 'ascii' codec can't decode byte 0xe9 in position 3:
> ordinal not in range(128)
>
> on a WIndows system when the hostname contains non-ASCII data.  (All the
> other elements involved in the os.path.join call are ASCII or numbers.)
>

A quite common pain within the non-ASCII-World of Python on Windows
programming.

The quickest soliution I found is to switch the sys.setdefaultencoding to
UTF-8, follower on slot 2 is to switch default-encoding to latin-1.

Both solutions are productive in real world projects for 5 (utf-8) and 9
years (latin-1) with various apps by me; and a similiar solution is reported
by Chris Withers for running productive for 5 years.

Both solutions were called being highly dangerous by MvL and others on
c.p.dev; esp. pointing out problems that can happen concerning hashes /
dict-keys not comparing as expected.

A more work-intensive soluton: only use unicode inside your application and
have a dedicated encoding step when interfacing with the environment (the
MAL recommend way, find slides here:
http://www.egenix.com/library/presentations/#DesigningUnicodeAwareApplicationsInPython
)

one try in that step: make that string-substituion a unicode substitution.
(guessing that self.hostname is Unicode not String on winnt and up)

self.unique_name = os.path.join(dirname,
                                           u"%s.%s%s" % (self.hostname,
                                                        tname,
                                                        self.pid))

(ATM converting my code step-by-step to that "only use unicode inside" way,
with having a sys.defaultencoding = "UTF-8" as "get less unicodexx errors
fallback")

best wishes,

Harald

-- 
GHUM Harald Massa
persuadere et programmare
Harald Armin Massa
Spielberger Straße 49
70435 Stuttgart
0173/9409607
no fx, no carrier pigeon
-
LASIK good, steroids bad?
_______________________________________________
python-win32 mailing list
python-win32@python.org
http://mail.python.org/mailman/listinfo/python-win32

Reply via email to