打印结果没有区别,utf-8的编码和解码用途是什么? 它是编码(' utf8')还是编码(' utf-8')?
u ='abc'
print(u)
u=u.encode('utf-8')
print(u)
uu = u.decode('utf-8')
print(uu)
答案 0 :(得分:1)
str.encode
将字符串(或unicode字符串)编码为一系列字节。在Python 3中,这是一个bytearray
,在Python 2中它再次str
(令人困惑)。当您对unicode字符串进行编码时,您将留下字节,不 unicode - 请记住 UTF-8不是unicode ,它是一种可以转向的编码方法unicode codepoints转换为字节。
str.decode
将使用所选编解码器解码序列化字节流,选择正确的unicode代码点并为您提供unicode字符串。
所以,你在Python 2中所做的是:'abc'
> 'abc'
> u'abc'
,在Python 3中是:
'abc'
> b'abc'
> 'abc'
。尝试打印repr(u)
或type(u)
以及查看更改位置的内容。
答案 1 :(得分:0)