On 02/29/2012 04:05 AM, Guillaume Chorn wrote:
Thanks, the suggestionprint name.decode("utf-8").strip() worked like a charm. When I did the print repr(name) I got exactly what you predicted. I'm not yet sure what all of this means, but I'm going to read this<http://docs.python.org/howto/unicode.html> in the hopes of finding out. Anyway thanks again for the help! cheers, Guillaume
What it means is that the character before the name was not a space character, but some Unicode variant of space. Peter figured that out, not I. It also means that you were using the incorrect decoder for the way the file was encoded and written out.
Are you creating that csv file with some Windows app, or with Python? You should look at it with a hex viewer to see if there are other surprises waiting for you in there. For example, you might also need the same kind of solution if there are quotes (or an apostrophe) anywhere in the file. Or if someone's address uses an umlaut.
Generally, it's better to clean up cruft at the source, when possible. And if that means the file has to be stored in utf-8, you should decode the whole file that way, and then deal with it as unicode.
-- DaveA -- http://mail.python.org/mailman/listinfo/python-list
