【发布时间】:2013-06-08 10:44:28
【问题描述】:
我看到the Python manual 提到了.encode() 和.decode() 字符串方法。在 Python CLI 上玩耍,我发现我可以使用与“常规”字符串 'hello' 不同的数据类型创建 unicode 字符串 u'hello',并且可以使用 str() 进行转换/转换。但真正的问题开始于使用高于 ASCII 127 u'שלום' 的字符时,我很难凭经验确定到底发生了什么。
is 987654324 overflowing 987654326 of 987654328 regarding Python's 987654331 and 987654333 handling @ / p>
使用str()方法对字符串进行编码和解码时究竟发生了什么(字节如何变化,数据类型如何变化),尤其是当字符串中包含不能用7个字节表示的字符时? 数据类型为<type 'str'> 的Python 变量是否可以编码和解码?如果它被编码,我理解这意味着该字符串由 UTF-8、ISO-8859-1 或其他编码表示,这是正确的吗?如果它被解码,这是什么意思?解码的字符串是 unicode 吗?如果是这样,那为什么他们没有数据类型<type 'unicode'>?
为了那些稍后将阅读本文的人的利益,我认为 Python 2 和 Python 3 都应该得到解决。谢谢!
【问题讨论】:
-
Python 3 没有任何这些问题:
str只能编码,bytes只能解码。
标签: python unicode encoding utf-8 python-2.x