python编码问题总结

1.#coding=utf-8
每一个.py文件开头一二行都要声明文件唯一的一个编码,具体格式及细节详见 PEP0263
作用:python解释器将按照此编码来解析一个.py文件。注意此编码并不一定是.py文件在磁盘上保存时的编码,但我测试发现像vim、ulipad这样的IDE在指定encoding:utf-8时,文件自动会按照指定的编码保存在硬盘上,如果人为使两者不同,python解释器会出错。因此似乎可以得出这样的结论:此编码其实就是.py文件在磁盘上保存的编码,改变为另外一种编码会导致python解释器不认识或不识别这种编码而导致出错,解释器应该有一个参数指定按照什么格式识别文件,但最好不要这样,不要引起不必要的麻烦。。。

2.html=urlopen(url).read()
html这一个字符串的编码为网页中meta指定的编码
str='aaa中文bbb'
str.find('中文')
结果是可以找到
若html中包含'中文',但执行
html.find('中文')
结果是找不到
原因在于两种串的编码不同,需要将html串转为encoding指定的编码的那个串,因为find('中文')中的目的串编码为encoding
html=unicode(html,html_encode,'ignore').encode(py_encode,'ignore')

你可能感兴趣的:(html,python,vim,ide)