Python 2 vs Python 3 -编码[重复]

8ljdwjyq  于 2023-09-29  发布在  Python
关注(0)|答案(1)|浏览(88)

这个问题已经有答案了

python get unicode string size(1个答案)
13小时前关闭
我有一个简单的代码:

# -*- coding: utf-8 -*-
text = "12É45678"
print(len(text))

看到带重音的上E
那么当我从python2运行时,结果是9当我从python3运行时,结果是8
如何在Python 2中获得8(原生)

wj8zmpe1

wj8zmpe11#

在Python 2中,str是一个简单的字节序列(在Python 3中我们称之为bytes)。要将任意字节解释为unicode代码点,您需要将它们解码为unicode对象:

# -*- coding: utf-8 -*-
text = "12É45678"
print(len(text))
print(len(text.decode("utf-8")))

在Python 2中,这将打印

9
8

参见Python 2文档中的Unicode HOWTO

相关问题