I'm a embedded software engineer! I'm now learning English. and i like photography. I also like Programming with Python, and learning the Turbo Gears! for Web Development!

Friday, May 04, 2007

All about Python and Unicode

boodebr‘s All about Python and Unicode 写得非常好,INET6也对它进行了注解,可是我却还是遇到了麻烦。

>>> import sys
>>> sys.getdefaultencoding()'ascii'
>>> h = '哈囉'
>>> h
'\xb9\xfe\x87\xd3'

不知为何我得不到INET6的输出:'\xab\xa2\xc5o',或者是u'\u54c8\u56c9'?

我把系统编码改成big5仍然是一样:
>>> reload(sys)

>>> sys.setdefaultencoding("big5")
>>> h = '哈囉'
>>> h
'\xb9\xfe\x87\xd3'
>>> h = u'哈囉'
>>> h
u'\xb9\xfe\x87\xd3'

这个问题困扰了我昨天从下午一直到午夜一点钟。因为之前我学习simpleblog教程,使用tg-admin shell,希望输入中文的Post Content,可是一直失败。到最后才发现我应该采用u'\u54c8\u56c9'这样的值存储中文,而不是'\xb9\xfe\x87\xd3'这样的值。

但是发现这个原因之前,我尝试了很多办法,包括修改KID文件的XML()方法,以及修改sysdefaultencoding,但是都没有效果。

而我现在仍然不知道为何?只是我不想再停留在这里,五一的假期时间很宝贵,不应该被这个问题浪费。况且现在知道了规避的办法,我想可以先进行下一步了。

后来发现这是tg-admin shell的一个Bug,请参见后面的Blog:(http://jiangsy.blogspot.com/2007/05/all-about-python-and-unicode.html)。

No comments: