1、前言
这阵子刚好忙着一个项目,公司那边给了个eclipse的项目,我觉得eclipse用着不顺手,就想着用idea导入,然后就踩到了深海巨坑
项目在eclipse的部署是很轻松的,来到了idea确是问题不断,其中最典型的问题就是今天要讲的内容 非法字符: ‘\ufeff’
2、为什么会提示非法字符
因为该项目在eclipse中是UTF-8+BOM文件保存,而eclipse可以智能的装换为普通的utf-8文件,而idea却没有这项功能,所以,原因就出现在怎么去除‘\ufeff’
3、解决方法
网上办法大多是点击idea右下角的编码,先转为gbk再转回来utf-8,这个确实能解决问题,可问题是,我这个项目少说200,,300个java文件,一个一个转,我不得疯了,得想想程序员的做法才行,我想了想,不就是编码问题吗,利用python遍历一下,转一下不就行了吗,于是就百度了一下utf-8 with bom 怎么转为utf-8
于是有了有了下面的转换代码,用法很简单,输入项目目录点击main方法就行,回到idea重新加载项目后,一切就完美解决了
import os, time
if __name__ == '__main__':
start = time.time()
directory = "D:\\IdeaProjects\\HRP"
for cdir, subdirs, files in os.walk(directory):
for file in files:
if file.endswith(".java"):
print(file)
try:
bom_file = os.path.join(cdir, file)
s = open(bom_file, mode='r', encoding='utf-8-sig').read()
open(bom_file, mode='w', encoding='utf-8').write(s)
except Exception:
print("出问题"+file)
print("cost time: %.3fs" % (time.time() - start))