我就写个字典居然卡了两天重申一遍文字编码日你大爷

        来看这个: 

        '扣的扣的扣你母亲'.decode('utf-8').encode('gbk')

(1)str.decode():

        用来把前边的字符串解码成unicode,因为Python内部用的是unicode。括号里需要的是字符串的编码——不是你想要的码,更不能不给参数——一般指默认编码,和文件默认编码一致,在代码开头用 #coding:编码 显式指明,或者用 u'字符串' 的形式直接转成unicode格式,直接省略decode这一步。

        不过问题是,在UliPad里只要不显式指明编码,不管怎么decode encode 加u 用unicode() 都会报错:

        SyntaxError: Non-ASCII character 'xe4' in file D:Software TokaPython 2.7.5Untitled 1.py on line 1, but no encoding declared; see http://www.python.org/peps/pep-0263.html for details

        看样子是只要非ASCII的字符都不能用,具体原因不明。

(2)str.encode():

        用于将Unicode字符编码成你想要的格式。相当于先用decode拆成unicode,再用encode组合起来。至于为什么用unicode中继前边已经说了,因为Python内部用的是unicode。

        例子里的第一步已经把字符串拆成了unicode,之后我需要的是GBK编码,因为我想显示的就是中文,所以在decode的基础上再encode('gbk'),就得到了GBK编码的文字,可以正常在命令行里显示。

(3)一些方法:

    sys.getdefaultencoding( )    当然要先导入sys模块。

    isinstance(string, unicode)   用来查看字符串是不是unicode编码。

关门放代码:



原文地址:https://www.cnblogs.com/chihane/p/3415124.html