Carbon Man wrote: > self.dataUpdate.write(u"\nentry."+node.tagName+ u" = " + cValue) > cValue contains a unicode character. node.tagName is also a unicode string > though it has no special characters in it. > Getting the error: > UnicodeEncodeError: 'ascii' codec can't encode character u'\x93' in > position 22: ordinal not in range(128)
There are two operations: 1. Concatenating the strings. 2. Invoking write(). First step I would make is to find out which of the two is raising the exception. Anyway, it probably is the second one, i.e. the call to write(). What is happening there is that the file's codec is trying to convert the Unicode string to bytes for the configured encoding ('ascii') but fails because there is no representation for u'\x93' there (Note: ASCII only uses the byte values from 0 to 126, the above is 147). The remedy is to set the output encoding to e.g. UTF-8 (default for XML) or ISO8859-1 (default for HTML) or whichever encoding you want. Otherwise, just throw the error message at the search engine of your least distrust to find a bazillion of other users that had similar problems. ;) Uli -- Sator Laser GmbH Geschäftsführer: Thorsten Föcking, Amtsgericht Hamburg HR B62 932 -- http://mail.python.org/mailman/listinfo/python-list