0x01

Eclipse可以智能的把UTF-8+BOM文件转为普通的UTF-8文件,Android Studio还没有这个功能,所以使用Android Studio编译UTF-8+BOM编码的文件时会出现” 非法字符: ‘\ufeff’ “之类的错误。

解决办法可以通过其他编辑器另存为UTF-8文件。但是太麻烦,这里使用的办法是使用python脚本全自动实现。

0x02

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
import os, sys, codecs

BUFSIZE = 10240000 //缓冲大小
BOMLEN = len(codecs.BOM_UTF8)
alterNum = 0
print("Start")
for root, dirs, list in os.walk(os.getcwd()):
for name in list:
dir = os.path.join(root, name)
print(dir)
with open(dir, "r+b") as fp:
chunk = fp.read(BUFSIZE)
if chunk.startswith(codecs.BOM_UTF8):
print("is a BOM file")
alterNum += 1
i = 0
chunk = chunk[BOMLEN:]
while chunk:
fp.seek(i)
fp.write(chunk)
i += len(chunk)
fp.seek(BOMLEN, os.SEEK_CUR)
chunk = fp.read(BUFSIZE)
fp.seek(-BOMLEN, os.SEEK_CUR)
fp.truncate()
print("**Complete")