printing from Word using win32com

Mark Hammond mhammond at
Wed Jan 2 01:43:53 EST 2002

Ian Parker wrote:

> In article <3C2D2007.AD251D51 at>, Frederick H. Bartlett
> <fbartlet at> writes

Oops - I missed the original:

>>       try:
>>           print str(item).encode('latin-1')
>>       except UnicodeError:
>>           print "XXX There was a Unicode Error."

   print item.encode('latin-1')

should work assuming item is always a COM string (ie, a Unicode object). 
  Note that using "mbcs" may be a better choice depending on your user base.

> you're having the same problem I had with Excel.  Python defaults to
> ASCII data (7bit - 128 characters).  To handle the full 8 bits (256
> characters) you may need "Latin-1".  
> I put the following into
> import sys
> encoding = 'latin-1'
> sys.setdefaultencoding(encoding)
> This solved all my problems with handling English language MS software.

> I got this tip from Paul Moore, who explained everything much more
> clearly, see email below

I am not too keen on this solution.  Python chose not to use latin-1 for 
good reason, and while a PITA, I believe that explicit conversions are 
better in the long run.


More information about the Python-list mailing list