<在网上下载一些开源代码后,在Eclipse中、在SourceInsight中打开,都是乱码。——因为这些代码是utf-8编码格式,而si不支持。所以需要对文件格式进行转换。
Notepad++可以自动转换,比如打开一个文件,菜单“转换为ANSI编码格式”。但如果文件非常多,一个个手工操作,会很无聊。
当然EditPlus据说可以批量转换,但没有试过。
然后一路找到Notepad++和Python Script配合,实现批量转换的方法,即
https://sourceforge.net/p/npppythonscript/discussion/1188886/thread/d632d91e/
下面是帖子中的代码,根据实际需要,对原始代码做一些优化,以满足自己的需求。
import os
import sys
from Npp import notepad # import it first!
# Path to the folder with files to convert
filePathSrc = "E:\\source_code\\"
#print filePathSrc
for root, dirs, files in os.walk(filePathSrc):
#print root, dirs, files
for fn in files:
#print fn
if fn[-5:] == ".java":
print "java:", fn
notepad.open(root + "\\" + fn)
#notepad.runMenuCommand("Encoding", "Convert to ANSI")
notepad.menuCommand(MENUCOMMAND.FORMAT_CONV2_ANSI)
#print "ret:", ret
# notepad.save()
# if you try to save/replace the file, an annoying confirmation window would popup.
new_fn = fn[:-5] + '_ansi.java'
#notepad.saveAs("{}{}".format(fn[:-5], '_utf8.xml'))
notepad.saveAs(root + "\\" + new_fn)
notepad.close()
这里是为每个文件创建一个对应的ansi.java备份文件。先跑一遍这种脚本,初步验证转换可行。之后就把这些临时ansi文件删除掉,再修改代码最后几行为:
notepad.save()
# if you try to save/replace the file, an annoying confirmation window would popup.
#new_fn = fn[:-5] + '_ansi.java'
#notepad.saveAs("{}{}".format(fn[:-5], '_utf8.xml'))
#notepad.saveAs(root + "\\" + new_fn)
notepad.close()
那么就直接修改源文件、保存到源文件了。
说明:上面这个py文件,好像不能随便放。需要 插件->Python Script->New Script的方式才行。或者放到这个New Script所在的那个目录下,这样子插件才能找到py文件。
关于Python Script,参考Notepadpp的Python Script插件。