I think the print statement blowing if it doesn't like a character is pretty unhelpful. It's all the
more awkward when, as Mark pointed out, its used frequently for debugging output.
Many years ago I used to work on IBM mainframes which uses the EBCDIC code table. However, most of
the access to this system was through class teletypes which were ASCII.
The interface used to substitutute anything that didn't translate cleanly into a question mark.
This worked well and you could tell if your program was misbehaving because you'd find odd question
marks in your output.
Why couldn't python adopt a similar approach? If a context requires a string and gets Unicode,
Python should translate automatically using a sensible localised (and overridable) default.
Characters that don't translate are replaced with a question mark.
If the default behaviour doesn't suite your purpose THEN you have to investigate the mechanics of
translating explicitly.
I'd much rather have output with some errors in it than no output at all and the program blowing
half way through.
--
Dale Strickland-Clark
Out-Think Ltd
Business Technology Consultants