>>>>> "Mark Tolonen" <[email protected]> (MT) wrote:

>MT> <[email protected]> wrote in message
>MT> news:[email protected]...
>>> Sorry being unclear again, hmm I am becoming an expert in it.
>>> 
>>> I pasted that code as continuation of my old code at start
>>> i.e
>>> class A(object):
>>> def __unicode__(self):
>>> return u"©au"
>>> 
>>> def __repr__(self):
>>> return unicode(self).encode("utf-8")
>>> __str__ = __repr__
>>> 
>>> doesn't work means throws unicode error
>>> my question boils down to
>>> what is diff between, why one doesn't throws error and another does
>>> print unicode(a)
>>> vs
>>> print unicode([a])

>MT> That is still an incomplete example.  Your results depend on your source
>MT> code's encoding and your system's stdout encoding.  Assuming a=A(),
>MT> unicode(a) returns u'©au', but then is converted to stdout's encoding for
>MT> display.  

You are confusing the issue. It does not depend on the source code's
encoding (supposing that the encoding declaration in the source is
correct). repr returns unicode(self).encode("utf-8"), so it is utf-8
encoded even when the source code had a different encoding. The u"©au"
string is not dependent on the source encoding.
-- 
Piet van Oostrum <[email protected]>
URL: http://pietvanoostrum.com [PGP 8DAE142BE17999C4]
Private email: [email protected]
--
http://mail.python.org/mailman/listinfo/python-list

Reply via email to