Python2 的 exec 语句中 Unicode 和 正常 Unicode 的问题? 这个两个输出结果的区别是什么原因造成的?

2017-08-19 16:50:34 +08:00
 noobsheldon
# exec 语句中
exec "res=u'中国'"
type(res)   # <type 'unicode'>
res         # u'\xe4\xb8\xad\xe5\x9b\xbd'

# 正常 Unicode
v=u'中国'
type(v)     # <type 'unicode'>
v           # u'\u4e2d\u56fd'

1201 次点击
所在节点    Python
2 条回复
ltux
2017-08-19 17:29:40 +08:00
你的写法造成的。
exec 把 "res=u'中国'" 当成一个 latin-1 编码的 str 来执行了呗。
est
2017-08-19 17:48:39 +08:00
试试 exec u"res=u'中国'" ?

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/384199

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX