上一篇文章说错了。。。
str 方法相当于 unicode.encode("utf-8") 是有前提条件的。。。
这个前提条件就是: 预先设置了Python的内部编码为utf-8,也就是执行了
>>> import sys
>>> reload(sys)
<module 'sys' (built-in)>
>>> sys.setdefaultencoding("utf-8")
也就是说,str 的编码,实际上是 缺省使用了内部默认编码参数的,并不是之前想的说,一定就是utf-8编码。
而且要注意的是 【必须是Python里面设置utf-8】系统环境本身是utf-8都没用.....
所以为了普适性,还是不能在需要encode utf-8的地方,来str
-----------------
在办公室电脑上reload了utf-8,但是回来在mac上测试代码的时候发现,mac下居然报错了,大吃一惊!!!
又ssh上Linux上测试,发现Linux结果和Mac一样,顿时不淡定了,以为是办公室电脑上自己改了源代码(这事经常做,改了那些源码自己都要不记得了),但是仔细想了想,应该没有改到str上去。
开始怀疑,是不死在Windows上str 才等于utf-8 又远程桌面上另外一台Windows上测试,发现另外一台Windows也是不行会报错。。。这个时候,才意识到,哦。。。。原来我之前在办公室电脑上测试的时候,是 reload sys, set utf-8的了的