学了两天编码,看了很多文章,学了不少东西.不过还是有一些问题没有搞清楚.在这里列举一些现象.我现在的环境是WIN XP Python 2.5
一.命令行交互模式
主要说一下在cmd 和 IDLE 两种交互模式下运行的情况

print repr(u'中')这个问题很多人都发现了,在CMD下运行是正常的,但在IDLE下就有问题.具体是怎么回事还没搞清楚,
但是
print '中'.decode('gbk').encode('utf-8')在IDLE下能显示中,在CMD下显示乱码.
sys.stdout.encoding这个变量现在发现可能在print UNICODE String 时,Python解释器根据它将unicode对象转换成它规定的编码.这点可以通过eclipse + pydev 环境中证实,在windows下,在这个环境中sys.stdout.encoding为None. 根据现在的经验 sys.stdout.encoding 和 sys.stdin.encoing这两个变量,最好看成是不可变的只读常量
,即使能修改它们,也不会对程序的运行带来任何影响,(例如在IDLE中)
本文讨论了在Windows XP环境下使用Python 2.5进行编码操作时遇到的问题,特别是关于CMD和IDLE两种交互模式下的表现差异,包括Unicode字符串的打印及乱码问题。
8万+

被折叠的 条评论
为什么被折叠?



