python解决乱码问题-文件

来源:互联网 发布:读取股票数据 编辑:程序博客网 时间:2024/04/30 06:45

#!/usr/bin/env Python
-*- coding:utf8-*-

import urllib2

req = urllib2.Request("http://www.baidu.com/")
res = urllib2.urlopen(req)
html = res.read()
res.close()

html = unicode(html,"gb2312").encode("utf8")
print html

要读取非ASCII编码的文本文件,就必须以二进制模式打开,再解码。比如GBK编码的文件

>>> f = open('/Users/michael/gbk.txt', 'rb')>>> u = f.read().decode('gbk')>>> uu'\u6d4b\u8bd5'>>> print u测试
如果每次都这么手动转换编码嫌麻烦(写程序怕麻烦是好事,不怕麻烦就会写出又长又难懂又没法维护的代码),Python还提供了一个codecs模块帮我们在读文件时自动转换编码,直接读出unicode:
import codecswith codecs.open('/Users/michael/gbk.txt', 'r', 'gbk') as f:    f.read() # u'\u6d4b\u8bd5'

0 0