[New-bugs-announce] [issue5876] __repr__ returning unicode doesn't work when called implicitly
Tomasz Melcer
report at bugs.python.org
Wed Apr 29 13:58:33 CEST 2009
New submission from Tomasz Melcer <liori at o2.pl>:
Invitation... (Debian Sid, gnome-terminal with pl_PL.UTF8 locales)
Python 2.5.4 (r254:67916, Feb 17 2009, 20:16:45)
[GCC 4.3.3] on linux2
Type "help", "copyright", "credits" or "license" for more information.
Lets create some class...
>>> class T(object):
... def __repr__(self): return u'あみご'
...
Does its repr() work?
>>> T().__repr__()
u'\u3042\u307f\u3054'
>>> print T().__repr__()
あみご
But when it is implicitly called, it doesnt?!
>>> T()
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
UnicodeEncodeError: 'ascii' codec can't encode characters in position
0-2: ordinal not in range(128)
>>> print T()
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
UnicodeEncodeError: 'ascii' codec can't encode characters in position
0-2: ordinal not in range(128)
Encoding:
>>> import sys
>>> sys.stdin.encoding
'UTF-8'
>>> sys.stdout.encoding
'UTF-8'
Workaround for now:
>>> class T(object):
... def __repr__(self): return u'あみご'.encode('utf-8')
...
----------
components: Extension Modules
messages: 86798
nosy: liori
severity: normal
status: open
title: __repr__ returning unicode doesn't work when called implicitly
type: behavior
versions: Python 2.5
_______________________________________
Python tracker <report at bugs.python.org>
<http://bugs.python.org/issue5876>
_______________________________________
More information about the New-bugs-announce
mailing list