Toby Dickenson wrote at 2003-7-25 12:32 +0100:
... ...
That's true, but you will definitely need to set a default encoding if you are going to use python code. If not set, the default encoding is ascii and you will get the usual "encode error, ordinal not in range (128)" error when doing as a simple thing as Print string_with_some_special_chars_inside. ... you wont get any error when doing.... print string_with_some_special_chars_inside ... but you may if doing..... print unicode_string_with_some_non_ascii_chars_inside
I find this inconvenient too, but that is the way that the Python language is defined. There is code inside Zope, and other libraries, that assumes Python behaves this way.
I do not want to believe this. Can you give an example? What do these libraries do when they get a UnicodeError encoding exception?
Your call to sys.setdefaultencoding will break these libraries, because they change the Python language globally.
I live in the "iso-8859-1" area and have (accordingly) defined the default encoding as "iso-8859-1". I did not met any library that has had problems with this -- neither Zope nor any other Python library I am using. Due to this default encoding, I save me from myriads of encoding errors and make interactive debugging feasible. Surely, you will understand, that I do not want to add an "encode('iso-8859-1')" to any value I output with "print" during interactive debugging. Dieter