注意,“U你好”只是中英文混写而已,不是写错了。
是因为你终端使用的编码不一致造成的
图1,linux终端,是UTF-8编码,验证方法:
a = "U你好"
a.decode("utf-8")
应该可以正确(不报错)显示转化成unicode字符了
图2,windows CMD终端,中文100%非utf-8编码,具体什么编码不清楚,身边没有win电脑可以验证
2 回答4.3k 阅读✓ 已解决
2 回答860 阅读✓ 已解决
1 回答4.1k 阅读✓ 已解决
3 回答855 阅读✓ 已解决
2 回答2.2k 阅读✓ 已解决
4 回答2.5k 阅读
3 回答902 阅读✓ 已解决
因为你的两个终端的字符编码不同,而不是 Python 的问题。
上面的
s
是一个str
而u
是一个unicode
对象。s
的值是根据终端的字符编码转换的结果,在 GBK 的终端下>>> s
得到'\xc4\xe3\xba\xc3'
,在 UTF8 的终端下>>> s
得到'\xe4\xbd\xa0\xe5\xa5\xbd'
,但>>> u
总是u'\u4f60\u597d'