On 01/-10/-28163 02:59 PM, Marc Muehlfeld wrote:
Hi,
<snip>
TEST = cursor.fetchone()
print TEST[0]
print TEST
When I run this script It prints me:
München
('M\xc3\xbcnchen',)
Why is the Umlaut of TEST[0] printed and not from TEST?
When you print a string, it simply prints it, control characters,
international characters, and all.
When you print a more complex object, it's up to that object to decide
how to print. In the case of a tuple above, the tuple logic displays
the parentheses and the comma, but calls the repr() of any objects it
contains. Tuple doesn't make a special case for strings, or for
numbers, it just always calls repr() (actually it's __repr__(), I think)
A list does the same thing, though it'll use square brackets at the ends.
So the question boils down to what repr() does. It attempts to create a
representation that could be used to create the specific object. So if
there's a newline, it uses \n. And if there are non-ASCII codes, it
uses hex escape sequences. And of course it adds the quote marks.
DaveA
--
http://mail.python.org/mailman/listinfo/python-list