Python 2.x中的字符串使用哪种编码?
在python 2.x中用于编码字符串的默认编码是什么?我读过有两种可能的方法来声明一个字符串。
string = 'this is a string'
unicode_string = u'this is a unicode string'
第二个字符串是Unicode。第一个字符串的编码是什么?
-
按照Python的默认/隐式字符串编码和转换(简洁地引用其Py2部分,以最大程度地减少重复):
实际上,Python 2中有多个独立的“默认”字符串编码, 供其功能的不同部分使用。
-
解析代码和字符串文字:
str
从文字中获取-将包含文件中的原始字节,不进行转码unicode
从文字中获取-文件中的字节以decode
“ d”加上文件的“源编码”,默认为ascii
- 随着
unicode_literals
future,文件中的所有文字都被视为Unicode文字 -
转码/类型转换:
-
str<->unicode
类型转换和encode
/不decode
带参数完成sys.getdefaultencoding()
- 这是
ascii
几乎总是,所以任何国家的字符将会导致UnicodeError
str
只能是decode
“d和unicode
-encode
” d。否则尝试将涉及隐式类型转换(具有上述结果)-
I / O,包括
print
ing: -
unicode
-如果已设置,则为encode
‘d’<file>.encoding
,否则将隐式转换为str
(具有上述结果) str
-将原始字节写入流,不进行任何代码转换。对于国家字符,终端将根据其语言环境设置显示不同的字形。
-