我注意到以下几点:
>>> u'abc' == 'abc'
True
>>> 'abc' == u'abc'
True
这总是正确的还是可能取决于系统区域设置?
(在 python 3 中字符串似乎是 unicode:例如这个问题 https://stackoverflow.com/questions/21615662/python-3-if-a-string-contains-only-ascii-is-it-equal-to-the-string-as-bytes,但在 2.x 中为字节)
Python 2 之间的强制unicode
and str
比较两种类型时使用 ASCII 编解码器。所以是的,这是always true.
也就是说,除非你搞乱了你的Python安装和使用sys.setdefaultencoding() https://docs.python.org/2/library/sys.html#sys.setdefaultencoding更改该默认值。通常你不能这样做,因为sys.setdefaultencoding()
函数是deleted在启动时从模块中删除,但是人们使用的地方有一个 Cargo Cultreload(sys)
恢复该功能并将默认编码更改为其他内容以尝试修复隐式编码和解码问题。正是出于这个原因,这是一件愚蠢的事情。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)