批量转换文件编码(By notepad++)

背景

代码文件中包含中文注释且文件编码是gb2312,存在需要将其转换为UTF8-BOM(或者UTF-8)。

本以为这个转换跟简单,结果找了几款小工具,批量转换后,中文变成乱码;Linux 下的iconv 也能转换编码,但感觉它也存在不便之处:1,本身只能支持单个文件文件,要批量转需要写脚本;2,如果是win10还需要配合cygwin或者wsl,因为它是linux下的命令。发现notepad++可以转换单个文件且转换完后无乱码,最终选择它来实现批量转换。

参考文章

网上其实有不少相关文章,如下。但实际操作后,略有一点不同。故记录一下。

Notepad++ 批量修改文件编码格式

Notepad++ 使用Python 插件批量 转换文本文件(字幕文件) 为 UTF8

详细步骤

  • 安装Python Script 插件。运行notepad++ 打开插件 --> 插件管理器 --> 显示插件管理

注:大部分文章第一步是安装notepad++插件管理器,实际上无需安装。notepad++当前版本为7.9。

  • 搜索并安装: Python Script,然后依照提示,重启notepad++
  • 安装完成后,新建脚本。选择插件 --> python --> 脚本新建脚本。这里取名为convertToUTF-8-BOM.py,内容如下:
import os
import sys

# Path to the folder with files to convert
dir_to_convert = "E:\\repository\\your-actual-dir-to-convert"

for root, dirs, files in os.walk(dir_to_convert):
    for file in files:
        if file[-4:] == '.cpp' or file[-2:] == '.h':  # Specify type of the files
            notepad.open(root + "\\" + file)
            notepad.runMenuCommand("Encoding", "Convert to UTF-8-BOM")
            notepad.save()
            notepad.close()

注:

1,dir_to_convert设置成你的实际路径。

2,我这里是转换一个c++项目的文件编码,所以文件扩展名是.cpp和.h。依照你的实际需求设置文件扩展名。

3,此处是转换成UTF-8-BOM,也可以转换成UTF-8。

  • 运行此脚本。插件-->Python Script-->Scripts-->ConvertoToUTF-8-BOM

注:

1,网上有文章说,运行此脚本时,要将notepad++设置成英文界面。实测下来无需切换英文,保持中文界面也可运行。

2,实测发现:如果将脚本中的"Encoding"、"Convert To UTF-8-BOM"写成中文,脚本不会运行;如果脚本文件中的注释包含中文,或者路径中包含中文,脚本也不运行;

运行完成后,即可成功转换文件编码。 

  • 2
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值