python - 仅包含 ASCII 字符的 UNICODE 字符串是否总是等于 ASCII 字符串?

标签 python python-2.7 unicode character-encoding python-unicode

我注意到以下内容:

>>> u'abc' == 'abc'
True
>>> 'abc' == u'abc'
True

这是否总是正确的,还是可能取决于系统区域设置? (似乎字符串在 python 3 中是 unicode:例如 this question ,但在 2.x 中是字节)

最佳答案

Python 2 在比较两种类型时使用 ASCII 编解码器在 unicodestr 之间进行强制转换。所以是的,这是总是正确的。

也就是说,除非你搞砸了你的 Python 安装并使用了 sys.setdefaultencoding()更改该默认值。您不能正常这样做,因为 sys.setdefaultencoding() 函数在启动时已从模块中删除,但是人们使用的地方有一个 Cargo Cult reload(sys) 恢复该功能并将默认编码更改为其他内容以尝试修复隐式编码和解码问题。正是出于这个原因,这是一件愚蠢的事情。

关于python - 仅包含 ASCII 字符的 UNICODE 字符串是否总是等于 ASCII 字符串?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28627444/

相关文章:

python - 什么时候更新文件?

python - 将 UTF-16 转换为 UTF-8 并删除 BOM?

python - 不区分大小写的 xml 和 python

python - 我的Python猜数字游戏的问题

python - 将变量写入CSV行python

Python 嵌套循环三角形

python - 拆分 pandas 数据框行时出现问题?

java - char[] 到 Java 中 Unicode 字符的字符串序列不匹配

PHP PCRE unicode 转义

css - 谷歌字体和跨浏览器 Unicode