Eclipse项目转Android Studio时编码问题

打算把公司的项目从Eclipse转到Android Studio了,但是遇到一个问题,因开始建项目时,使用的编码是系统默认的GBK编码,偏偏Android Studio却必须要UTF8编码显示,所以才决心写一个转码的Python脚本(如果让我一个文件一个文件的去转码,真当我傻啊)

 1 #coding:utf-8
 2 """将gbk编码的文件转成UTF-8编码格式的"""
 3 __author__ = "halcyon"
 4 
 5 import os,sys
 6 import chardet
 7 
 8 ##多种编码转utf8
 9 def convert(filename, in_enc = ["GBK","GB2312","GB18030","ASCII"],out_enc="utf8"):
10     try:
11         print "convert " + filename
12         content = open(filename).read()#读取文件
13         result = chardet.detect(content)#通过chardet.detect获取当前文件的编码格式串,返回类型为字典类型(如果已经确定自己的项目的编码格式,这两行可以无视了)
14         coding = result.get("encoding") #获取encoding的值<编码格式>(同上)
15         for k in in_enc:
16             if coding == k:
17                 print coding + " to utf8"
18                 new_content = content.decode(coding).encode(out_enc)#原理:把文件先转到Unicode,再转到utf8
19                 open(filename,'w').write(new_content)#写入到本地原文件
20                 print "done."
21                 break;
22     except IOError,e:
23         print " error"
24 
25 ##遍历文件夹
26 def explore(dir):
27     for root, dirs,files in os.walk(dir):
28         for file in files:
29             path = os.path.join(root,file)
30             convert(path)
31 
32 
33 def main():
34     for path in sys.argv[1:]:
35         if os.path.isfile(path):
36             convert(path)#如果传入的是文件,则直接转码
37         elif os.path.isdir(path):
38             explore(path)#如果传入参数是文件夹路径,则遍历转码<br>
39 ##调用主方法<br>
40 if __name__ == "__main__":
41   main();

注意:转码后记得在Eclispe中把项目设置成UTF8类型,因为文件已经转码,但项目设置还是gbk,这样中文显示就会乱码

posted @ 2015-12-28 10:36  sleepend  阅读(659)  评论(0编辑  收藏  举报