繁体   English   中英

编码和解码特定字符集

[英]encode and decode for a specific character set

打印结果没有区别,utf-8编码和解码的用途是什么? 它是encode('utf8')还是encode('utf-8')?

u ='abc'
print(u)
u=u.encode('utf-8')
print(u)
uu = u.decode('utf-8')
print(uu)

str.encode将字符串(或unicode字符串)编码为一系列字节。 在Python 3中,这是一个bytearray ,在Python 2中,它又是str (令人困惑)。 对unicode字符串进行编码时,剩下的是字节, 而不是 unicode-请记住UTF-8不是unicode ,这是一种可以将unicode代码点转换为字节的编码方法。

str.decode将使用选定的编解码器解码序列化的字节流,选择适当的unicode码点并为您提供unicode字符串。

因此,您在Python 2中所做的是: 'abc' > 'abc' > u'abc' ,在Python 3中是: 'abc' > b'abc' > 'abc' 尝试打印repr(u)type(u) ,以查看更改之处。

utf_8可能是最经典的 ,但这并不重要。

通常,Python会先尝试将其解码为unicode,然后才能将其编码回UTF-8。其中有一个编码规定,该编码与可应用于8位字符串的字符集无关。

例如

data = u'\u00c3'            # Unicode data
 data = data.encode('utf8')
 print data

'\xc3\x83' //the output.

在这里这里浏览。这会有所帮助。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM