Python 字符串编码的问题

2017-08-05 11:01:23 +08:00
 hcnhcn012
python 中 unicode 和 str 到底有什么关系?为什么 Python3 中找不到 unicode 这个类,却可以用 u''来初始化变量?还是说一个 str 有多种编码方式,u'abc'就相当于'abc'.encode(),但是在 python3 中'abc'.encode('unicode')这种参数是不存在的,这是怎么回事?
从 len('汉')=3,len(u'汉')=1 的结果看出,str 是默认 utf-8 编码的?
2241 次点击
所在节点    Python
4 条回复
zhihhh
2017-08-05 11:34:35 +08:00
在 python3 里面所有的 str 都默认是 unicode 了。不存在有'abc'.endcode('unicode')这种说法了吧。
gdsing
2017-08-05 15:05:56 +08:00
不清楚楼主到底是想问 py3,还是 py2。
1、如楼上说的,py3 默认都是 unicode
2、len('汉')=3 可能会出现 len('汉')=2 的情况,py2 str 编码是跟系统的。
pia
2017-08-05 20:48:49 +08:00
还有'unicode'参数?是 'abc'.encode('utf-8') 吧
hcnhcn012
2017-08-05 21:59:54 +08:00
@gdsing 好的👌谢谢我知道了

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

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

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

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

© 2021 V2EX