请教一个 encode 方法的问题

2017-08-15 22:56:24 +08:00
 saximi
已知 UNICODE 码制下,十六进制值 OxCD 和 OxE8 分别对应这两个特殊字符“Ä”、“è”
>>> S='Äè'
>>> S.encode('latin-1')
b'\xc4\xe8'

上面程序的输出为何将这两个字符显示为十六进制格式?与之相比,下面的程序输出就是 ASCII 字符而不是十六进制格式,这是为何?
>>> S='spam'
>>> S.encode('latin-1')
b'spam'

恳请指点,谢谢!
1573 次点击
所在节点    Python
3 条回复
Librazy
2017-08-16 00:22:42 +08:00
boboliu
2017-08-16 08:14:03 +08:00
建议仔细阅读 docs.python.org ,不要欺负楼上一个没写过 Python 的来给初学 Python 的查资料了 233 XD
NoAnyLove
2017-08-16 09:28:43 +08:00
encode 之后当然就是 bytes 了啊,不能在 ASCII 范围内显示的字符(包括 0~127 之间的不可见字符),就被表示成 16 进制咯

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

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

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

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

© 2021 V2EX