Python 开发几则小问题
目录

Encoding

对于源代码文件,推荐使用utf-8格式存储,这需要在每个包含非ASCII的源文件头加上:

# -*- coding: utf-8 -*-

对于string,Python中有两种类型:

  • bytestrings: 以源文件格式进行编码,比如utf-8
  • unicode strings

对于Python2,normal strings(不加修饰的字符串赋予的变量)是basestrings类型。 如果需要unicode类型字符串,需要加上u前缀:

# python 2
my_string = "This is a bytestring"
my_unicode = u"This is an Unicode string"

而对于Python3,情况相反,normal strings是unicode strings类型,如果需要basestrings类型的字符串,需要加上b前缀:

# python 3
my_string = b"This is a bytestring"
my_unicode = "This is an Unicode string"

对于python 2,为了保证向后兼容性,推荐引入module与python 3的normal strings一致:

# python 2
from __future__ import unicode_literals

my_string = b"This is a bytestring"
my_unicode = "This is an Unicode string"

Python 2 Porting to Python 3

发表评论