首页 > 代码库 > Excel打开无BOM-UTF8文件中文乱码

Excel打开无BOM-UTF8文件中文乱码

  运营同学需求扫库统计全服大V玩家,在数据库上扫出结果发过去之后,反馈说使用Excel打开玩家姓名都是乱码。看了下发过去的文件,发现都是linux下不带BOM的UTF8编码文件,而Excel作为Windows下的软件,需要使用BOM头来确定文件为UTF8编码,所以需要给文件加上BOM头。

  一般的需求都是去掉BOM头,这次需求居然是加上BOM头,比较奇怪,不过试了下,发现用Python完成转换还是非常方便的,读出来直接decode/encode即可,代码如下:

  

 1 #coding=utf8 2 #将文件夹内的所有文件由utf8转换为utf8_With_Bom 3  4 import os 5  6 rootDir = D:\\111\\ 7  8 def Trans(): 9     for lists in os.listdir(rootDir):10         path = os.path.join(rootDir, lists)11         if not os.path.isdir(path):12             f = open(path,rb)13             content = f.read()14             f.close()15             temp = content.decode(utf-8)16             result = temp.encode(utf-8-sig)17             f = open(path.replace(.txt, .result.txt),wb)18             f.write(result)19             f.close()20 21 if __name__ == __main__:22     Trans()

 

Excel打开无BOM-UTF8文件中文乱码