Carbon Man wrote: > Py 2.5 > Trying to write a string to a file. > 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)
Please don't confuse utf-8 with unicode. The former is an encoding of the latter. Which is a crucial difference, as something being encoded (either in utf-8 or any other encoding) needs to be *decoded* before being dealt with in python as unicode-object. Which is what's causing your troubles here. cValue is a *byte*string containing some non-ascii-characters. If you are sure cValue is utf-8-encoded, you can do u" = " + cValue.decode("utf-8") to remedy the problem. Diez -- http://mail.python.org/mailman/listinfo/python-list