问题是这样的:我用python写的程序去读取.htm文件中的数据,刚开始我用:fr = open("0.htm" , "r")时,程序运行后直接崩溃,后来根据提示的错误信息:ValueError encoding must be one of 'utf_8','big5', or 'gbk'.,因此我用codecs改写成如下形式:
- coding: utf-8 -
import sys
reload(sys)
sys.setdefaultencoding("utf-8")
import codecs
fr = codecs.open(“0.htm” ,”r” , “utf-8”)
至少把打0.htn程序就崩溃的问题解决了。
但是读取文件中的内容的时候:
读到含有中文的某一行内容,程序直接奔溃了:这一行内容如下:
错误提示如下:
UnicodeDecodeError: 'utf8' codec can't decode byte 0xb3 in position 0: invalid start byte
我的0.htm文件中的编码如下:
原因:
0.htm文件中的编码如下: <html> <head> <meta http-equiv="Content-Language" content="zh-cn"> <meta name="GENERATOR" content="Microsoft FrontPage 5.0"> <meta name="ProgId" content="FrontPage.Editor.Document"> <meta http-equiv="Content-Type" content="text/html; charset=gb2312"> 它的字符集是:gb2312因此必须用gbk编码的方式去读取
解决方法:
用"utf-8"不能解码,用"gbk" fr = codecs.open(“0.htm” ,”r” , “gbk”)