Python 2.x中的字符串使用哪种编码?

发布于 2021-01-29 14:55:10

在python 2.x中用于编码字符串的默认编码是什么?我读过有两种可能的方法来声明一个字符串。

string = 'this is a string'
unicode_string = u'this is a unicode string'

第二个字符串是Unicode。第一个字符串的编码是什么?

关注者
0
被浏览
120
1 个回答
  • 面试哥
    面试哥 2021-01-29
    为面试而生,有面试问题,就找面试哥。

    按照Python的默认/隐式字符串编码和转换(简洁地引用其Py2部分,以最大程度地减少重复):

    实际上,Python 2中有多个独立的“默认”字符串编码, 供其功能的不同部分使用。

    • 解析代码和字符串文字:

      • str 从文字中获取-将包含文件中的原始字节,不进行转码
      • unicode从文字中获取-文件中的字节以decode“ d”加上文件的“源编码”,默认为ascii
      • 随着unicode_literalsfuture,文件中的所有文字都被视为Unicode文字
      • 转码/类型转换:

      • str<->unicode类型转换和encode/不decode带参数完成sys.getdefaultencoding()

      • 这是ascii几乎总是,所以任何国家的字符将会导致UnicodeError
      • str只能是decode“d和unicode- encode” d。否则尝试将涉及隐式类型转换(具有上述结果)
      • I / O,包括printing:

      • unicode-如果已设置,则为encode‘d’ <file>.encoding,否则将隐式转换为str(具有上述结果)

      • str-将原始字节写入流,不进行任何代码转换。对于国家字符,终端将根据其语言环境设置显示不同的字形。


知识点
面圈网VIP题库

面圈网VIP题库全新上线,海量真题题库资源。 90大类考试,超10万份考试真题开放下载啦

去下载看看