python中的中文字符的困惑

python中的中文字符的困惑

在windows的CMD下使用os.getcwd()和os.listdir()得到的目录名中的中文字符显示出来都是16进制的,不知道怎么得到的是ASII码呢?
使用print os.getcwd()能得到正常显示的中文
但是用print os.listdir()是不起作用的
对于这种问题,我完全不晓得如何使用
还请大家赐教。



LZ用unicode()函数将字符串转换为unicode字符串试试,我试过,可以显示中文了。

unicode(str, 'cp936')
貌似用 u'%s' % str 就可以
在第一行加#coding=gbk 就可以了。
import os
for s in os.listdir("e:\\"):
    print s
没有加#coding=gbk,输出正常,不过直接print  os.listdir("e:\\")输出就是楼主说的那样了
如果列表里面的元素含有非ascii码,比如中文字符,直接print列表,列表里面的中文字符只会显示为16进制数,要对里面的每个元素分别print才会显示中文。可以这么做:

for s in os.listdir('./'):
    print s
这样应该就不会输出16进制数了。