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,这样中文显示就会乱码
谁走进你的生命,是由命运决定,谁停留在你的生命中,却由你自己决定