On Thu, 06 Aug 2009 09:14:08 -0700, Robert Dailey wrote: > I'm loading a file via open() in Python 3.1 and I'm getting the > following error when I try to print the contents of the file that I > obtained through a call to read(): > > UnicodeEncodeError: 'charmap' codec can't encode character '\xa9' in > position 1650: character maps to <undefined> > > The file is defined as ASCII and the copyright symbol shows up just > fine in Notepad++. However, Python will not print this symbol. How can > I get this to work? And no, I won't replace it with "(c)". Thanks!
1. As others have said, your file *isn't* ASCII, but that isn't the problem. 2. The problem is that the encoding which your standard output stream uses doesn't have the copyright symbol. You need to use something like: sys.stdout = io.TextIOWrapper(sys.stdout.detach(), encoding = 'iso-8859-1') sys.stderr = io.TextIOWrapper(sys.stderr.detach(), encoding = 'iso-8859-1') to fix the encoding of the stdout and stderr streams. -- http://mail.python.org/mailman/listinfo/python-list