python 打开文件后的编码?

python 打开文件后的编码?

先说明目的:
打开下面的文件匹配html内容;找到则打印出来,找不到则返回"无"
我的文件内容如下:
a.txt(按行存储)

QUOTE:
邬静娜
邬敏
郇公弟
郜彦伟
鄢闻余
奚春山
闫立良
闫婧宇
宓家峰
璩静

>>>myfile = open("a.txt")
>>>myfile.seek(0)
>>>str = myfile.read()
>>>a_file = str.decode("gb2312","ignore").encode("utf-8")
>>>for line in a_file.split('\n'):
...            if re.search(line,html):
                         print line
              else:
                         print "无"
>>> myfile.close()


因为之前的html已经转换成了utf-8的编码,所以打开的文件a.txt也要转换,但转换之后,内容中有些错误有些丢失.不知道该怎么办了,还请高人指点.谢谢
编码问题?
统一编码
恩,打开本地一个文件需要转换编码吧?
但转换之后有不少的乱码.
另外
for line in a_file.split('\n'):

line的情况是一个字一个字的输出吧?
比如一行为"鄢闻余",但进入re.search的却是
re.search("鄢",html)
re.search("闻",html)
re.search("余",html)
是这样的吗?
我觉得好像是,但这样的话怎么解决?


QUOTE:
原帖由 xiaoyu9805119 于 2008-8-15 10:23 发表
统一编码

a_file = str.decode("gb2312","ignore").encode("utf-8")
这句话就是同一编码啊,我的html已经统一成utf-8了.与文件无关的操作的re很正常.
还需要怎么统一?
我说的统一是所有编码唉,比如你的html编码是gbk,那你的py脚本编码和文件编码也是gbk,这样能省去不少麻烦。

不行就只能decode然后encode了
我的py是utf-8,html是utf-8,文件在转码之后也是utf-8,但出现了部分乱码!
哪个文件转换之后出现乱码?


看到了, 你是说 txt 转换后出现乱码.



QUOTE:
原帖由 retuor 于 2008-8-15 10:49 发表
哪个文件转换之后出现乱码?

a.txt
我测试是正常的,不会 split 成一个一个字。

[Copy to clipboard] [ - ]
CODE:
#!/usr/bin/env python                                                           
#-*- coding:utf-8 -*-                                                           

myfile=open("a.txt")
str=myfile.read()
a_file=str.decode("gb2312", "ignore").encode("utf-8")
for x in a_file.split('\n'):
    print x

输出:

QUOTE:
邬静娜
邬敏
郇公弟
郜彦伟
鄢闻余
奚春山
闫立良
闫婧宇
宓家峰
璩静

把你的 a.txt 上传一下?