同一段代码里,为什么打印出来会不会效果呢?

同一段代码里,为什么打印出来会不会效果呢?

import time
dbc = odbc.odbc('vsagentlib/qpgmr/pqpgmr')
cr = dbc.cursor()
query_blno = 'PONLTAO01088396_C'
cr.execute("select * from vsagentlib.ecdbooking where ecdbooking.blno ='%s'"%query_blno)
for col in cr.fetchall():
    #print "mainkey is %s,blno is %s" %(col[0],col[1])
    print col[7],col[8],col[-10],col[-11]
    print col

第一个打印,可以打印出中文来,而第二个直接打印一个序列,中文显示为乱码?请指点一下,
当前程序效果
班轮部 Wed Sep 01 16:36:41 2004 班轮部
(4776, 2, 'PONLTAO01088396_C', None, None, 'PNO', 'P&O NEDLLOYD', 'IZYWLAQDB', '\xb0\xe0\xc2\xd6\xb2\xbf', 'PNO', 'P&O NEDLLOYD', None, None, 'CNTAO', 'QINGDAO', '', '', 'MYKEL', 'KELANG', 'MYKEL', 'KELANG', 'CY-CY', 'P', 'FREIGHT PREPAID', '1', '0', '0', None, None, None, '40HRx1', None, None, None, None, None, '1', '1', 'R', '\xb0\xe0\xc2\xd6\xb2\xbf', <DbiDate object at 0x00D7D2A0>, 'R', '\xb0\xe0\xc2\xd6\xb2\xbf', <DbiDate object at 0x00D7D2B0>, None, None, None, None, None, '0', '1', '0', None)
那个不是乱码,是字符串的unicode形式。


QUOTE:
原帖由 wolfg 于 2007-1-22 12:51 发表
那个不是乱码,是字符串的unicode形式。

知道不是乱码,俺只想知道为什么第一个print能转换过来,而第二个就不能自动转换?
Dive Into Python里的一句话

QUOTE:
When printing a string, Python will attempt to convert it to your default encoding, which is usually ASCII.

对list来说,需要首先把list变成string,应该是调用__str__方法吧,而这个__str__方法里可能就没有做encoding转换了