常用的编辑器,例如notepad,在保存一个以UTF-8编码的文件时,会在文件开始的地方插入三个不可见的字符(0xEF 0xBB 0xBF,即BOM)。 因此在读取时需要自己去掉这些字符,python中的codecs module定义了这个常量:  
 
[whj@localhost Python]$ vi readline.py                                                                                                    
 1 #!/usr/bin/python  
 2 import codecs  
 3   
 4 f = open("./Text.txt", "r");  
 5   
 6 while True:  
 7     line = f.readline()  
 8     if line[:3] == codecs.BOM_UTF8:  
 9         line = line[3:]  
10     if line:  
11          print line.decode("utf-8"),  
12     else:  
13         
break  
14   
15 print  
16 print  
17 print  
18 f.seek(0,0)  
19   
20 for str in f:  
21     if str[:3] == codecs.BOM_UTF8:  
22         str = str[3:]  
23     print str.decode('utf-8'),  
24   
25 f.close()