如何批量修改工程文件编码?
0 2023-05-31

最近忙于找工作,好一段时日没有更新了,找工作面试的过程也让我发现了一些我的知识盲区,小小单片机却也不简单,需要继续努力闲话不多说,下面开始正式介绍批量修改文件编码


做这个操作的个人需求来源是:看参考例程发现用的不是UTF-8编码,其中的中文注释在工程移植、拷贝等过程中会乱码,现在需要将其工程中所有的头文件、源文件、文本文件,不乱码的改为UTF-8编码。目前找到了两个较为可行的方法:(其中的解释可能需要先看后文进行实操才能看懂)

1.使用notepad++的python script,前期配置较为繁琐,但是使用非常方便。后面会介绍使用的脚步,其中第一种脚本需要目标工程位于英文路径,第二种脚本则不存在目录名称问题(有中文无所谓,因为脚步是基于notepad++打开的文件进行操作的,而不是自己去搜索目录)

2.使用editplus,使用该方法无法用cmd命令行工具遍历打开所有子目录的目标文件(可能是我研究的不够,或许是有它的对应这种功能的命令),需要用它自身提供的功能去分别打开不同类型的文件进行批量修改。使用editplus不存在目录名称问题(有中文无所谓)


一、使用notepad++的python script插件

1.安装方法

(1)百度搜 notepad++ 64bit 安装64位notepad++软件,注意安装时在语言选择界面选择安装英文版本

(2)安装notepad++插件管理器,下载链接:

https://github.com/bruderstein/nppPluginManager/releases

有四个版本,其中2个带_UNI的是32位的不要下载,另外带_PA的我也不知道啥意思,按我自己尝试,下载如图1框选的这个就行了。下载后解压至notepad++ 的plugins目录,重启notepad++即可

图1

(3)安装Python Script插件

菜单栏选择Plugins->Plugins Admin,如图2,然后弹出如图3窗口,在搜索框搜索pythonscript然后勾选搜索出来的插件,然后点击install进行安装,安装过程会自动关闭notepad++,安装完成后会自动重启notepad++,这时候再展开Plugins菜单会看到增加一条Python Script。有时候第一次安装会没有效果,再装一次就好了。

图2

图3

(4)创建Python脚本

按如图4路径新建脚本,弹出图5所示窗口,它会默认保存到框选目录,这个路径需要留意一下,因为后面修改脚本需要重新编辑脚本文件,要重新从路径中打开它(Notepad++\plugins\config\PythonScript\scripts)。然后输入脚本名称,可以取图5所示名字:convertToUTF8 。具体脚本参考下文,可以建两个脚本文件以后方便备用

图4

图5

2.两种脚本

使用方法:脚本运行时一定要先打开console控制台,不然脚本可能没运行成功却不知道,以为已经运行了,控制台就在脚本的菜单下面,很容易找到。运行脚步的方法:直接到脚本菜单里面找到创建的脚本项(脚本创建保存后会自动加载到脚本菜单里面)点击它就会运行。

(1)一种脚本:直接对指定文件夹(包含子文件夹)遍历修改,但是需要每次修改脚本里面的文件夹路径(使用notepad++去到脚本所在目录,见上文,打开编辑脚本),如下可以修改文件夹下所有的.h .c .txt文件编码,注意亲测使用这个脚本不能遍历中文目录:














# coding=UTF-8import os dirPath = r"C:\Users\yxtsj002\Desktop\led"exts=[".h",".c",".txt"]for root, dirs, files in os.walk(dirPath): for file in files: fileext = os.path.splitext(file)[-1] if fileext in exts: notepad.open(root+"\\"+file) notepad.runMenuCommand("Encoding", "Convert to UTF-8") notepad.save() notepad.close()

(2)另一种脚本:修改notepad++打开的所有文件编码,好处是不需要修改脚本,脚本通用,但是需要结合使用cmd命令来批量递归(-r)打开文件夹和子文件夹下的所有待修改后缀的文件(参考后面*标注)











#-*- coding: UTF-8 -*- import os;import sys;fcount = len(notepad.getFiles())f = 0while f < fcount: notepad.runMenuCommand("Encoding", "Convert to UTF-8") notepad.save() notepad.close() f+=1

*进入要修改编码的工程目录,然后以cmd命令方式调用notepad++批量打开文件,前提要先把notepad++程序添加到系统环境变量中的路径变量path,添加后重启cmd可以试试程序是否可以启动,如果可以启动说明路径添加成功(这里不展开)


C:\Users\echigh\Desktop\light_led>notepad++ *.c *.h *.txt -r


二、使用现成的工具

1.百度搜这个名字:迷你批量更改文件编码工具。没用的工具,我这边测试转换后乱码,我看网上有很多人的文章推荐这个,估计是写文章的人相互抄的没自己测试吧?

工具链接:http://www.crsky.com/soft/29270.html

2.editplus,很强大的文本编辑工具

(1)先单击如图图标调出文件夹窗口并进入到要修改的工程所在目录

图6

(2)然后设置搜索范围包含子目录,方法是先在目标目录右键点击Find in Directory,如图7,然后在弹出的窗口如图8中勾选Include subfolders,然后关闭窗口

图7

图8

(3)搜索目标文件,先在目标目录下右键点击File Name Search如图9,在弹出的窗口中如图10输入*.c搜索所有的c文件,搜索结果见图11所示控制台信息

图9

图10

图11

(4)打开所有搜索出来的文件并进行编码修改,如图12在控制台处右键单击Open All,就会打开所有在控制台显示搜索结果的文件,不过由于最前面的文件平铺开了,导致看不到其他打开的文件,如图13所示,点击还原按钮就能看到其他文件了,然后如图14去菜单Document下单击File Encoding展开后单击Convert Encoding Multiple,进行批量编码转换,然后在弹出的窗口如图15所示选中所有刚才搜索出来的c文件,点击OK,进入图16所示窗口,选择UTF-8,不要选UTF-8 + BOM(BOM是微软增加的字节序信息,和字符本身无关,这里不展开),点击OK即可完成转换,然后去文件菜单选择Save All即可

图12

图13

图14

图15

图16



声明: 本文转载自其它媒体或授权刊载,目的在于信息传递,并不代表本站赞同其观点和对其真实性负责,如有新闻稿件和图片作品的内容、版权以及其它问题的,请联系我们及时删除。(联系我们,邮箱:evan.li@aspencore.com )
0
评论
  • 相关技术文库
  • C语言
  • 编程
  • 软件开发
  • 程序
下载排行榜
更多
评测报告
更多
广告