> What are others' opinions? Any insight to this design decision? The intention is that all printable characters in a string get displayed in repr. This was in particular requested by Japanese users (but also by other users of non-ASCII characters) which complained that repr() is fairly useless if your strings actually contains *no* ASCII characters (but all of them are printable).
Notice that repr() of the string actually succeeds; try >>> x='\u5000' >>> z=repr(x) It is the printing of the repr that fails. > Maybe repr() should always display the ASCII representation with > escapes for all other characters You can use the ascii() builtin if you want that. > especially considering the "repr() should produce output suitable for > eval() when possible" rule. But that is preserved under the new behavior, also! Just try py> x='\u5000' py> eval(repr(x))==x True Regards, Martin P.S. How did you manage to get U+5000 into your data, on a system where the terminal encoding is cp437? Google translates it as "Rash"; the Unihan database also has "bewildered", "wildly". -- http://mail.python.org/mailman/listinfo/python-list