python版去UTF-8 BOM

今天给app弄银联支付接口。直接copy银联的sdk。结果。安卓和ios始终报json格式错误。找了半天。都没找到问题。最后怀疑可能是BOM破坏了json的数据格式转换。验证后确认是BOM的问题。为方便以后遇见BOM的问题的快速解决。写了个python版本的去除BOM小脚本。。

 

 1 #!/usr/bin/env python
 2 #coding=utf-8
 3 
 4 """
 5 清除指定目录下面文件的BOM 
 6   不包含子目录
 7 
 8 用法 ./clearBOM.py 文件目录
 9 
10 """
11 
12 import sys;
13 import os;
14 
15 def main(dirPath):
16     if dirPath[:-1] == /:
17         dirPath = dirPath[:-1]
18     fileList = os.listdir(dirPath)
19     for fileName in fileList:
20         tmp = dirPath + "/" + fileName;
21         if os.path.isfile(tmp):
22             clearBOM(tmp)
23 
24 """
25 清除BOM
26 """
27 def clearBOM(filePath):
28     fp = open(filePath,rb+)
29     if "\xef\xbb\xbf" == fp.read(3):
30         contents = fp.read()
31         fp.seek(0)
32         fp.write(contents)
33         print("Clear " + filePath + " UTF-8 BOM succ");
34     fp.close()
35     return True;
36 
37 
38 if __name__ == __main__:
39     main(sys.argv[1])

 

文章来自:http://www.cnblogs.com/iyoule/p/4317892.html
© 2021 jiaocheng.bubufx.com  联系我们
ICP备案:鲁ICP备09046678号-3