Notepad++批量更改文件编码格式及文档格式

背景:

在项目中遇到Windows平台VS的MSVC编译不识别Unix下UTF-8编码导致的编译失败问题。需要将Unix下的UTF-8转为UTF-8-BOM格式。网上找了些方式,之后又深入探究了下文档转换的可能性,共享给大家。(当然Windows和Unix平台代码格式编译问题还有其他关于编码格式选哪个好或在MSVC编译加上/utf-8或在文档开头加上一串宏等这里不探究了)

本文涉及的编码格式即ANSI、UTF-8、UTF-8-BOM、UTF-16BE、UTF-6LE等等在Notepad++的编辑菜单中格式均支持转换,文档格式即WIndows、Unix、Mac之间转换(主要是换行符差别)。

安装notepad++,并安装插件Python Script。安装方法可网上。

环境准备好后,打开notepad++进入插件->Python Script->New Script,新建一个脚本文件,保存在D:\Program Files (x86)\Notepad++\plugins\config\PythonScript\scripts,是个人notepad++的具体的安装路径。

然后键入如下类似代码:

python 复制代码
import os
import sys
 
# Path to the folder with files to convert
dir_to_convert = "D:\\workspace\\test"
 
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.menuCommand(MENUCOMMAND.FORMAT_CONV2_UTF_8)
            #文档格式转换
            notepad.menuCommand(MENUCOMMAND.FORMAT_TOUNIX)
            notepad.save()
            notepad.close()

上述代码供参考;

编码格式转换有两种方式:

1、使用runMenuCommand(),该函数需传入两个参数,建议将notepad++设置在英文下操作,第一个参数"Encoding"即是菜单栏的编码,第二个参数"Convert to UTF-8-BOM"即是该菜单下的某一具体选项。第二个参数可根据需要修改。(这种方式是网上说明比较多的一种,致敬)

2、使用menuCommand()命令,该函数仅需传入一个参数,该参数是宏定义好的值。具体命名宏可通过 插件->Python Script->Context-Help查看。具体哪个宏表示哪种格式,需要试一下,因为文档也没特别说明。本人也就关注了三个:

ANSI--MENUCOMMAND.FORMAT_CONV2_ANSI;

UTF-8---MENUCOMMAND.FORMAT_CONV2_AS_UTF_8;

UTF-8-BOM---MENUCOMMAND.FORMAT_CONV2_UTF_8;

文档格式转换:

命令是使用menuCommand(参数);参数对应三个宏分别是:

MENUCOMMAND.FORMAT_TODOS--Windows

MENUCOMMAND.FORMAT_TOMAC--MAC

MENUCOMMAND.FORMAT_TOUNI--Unix

相关推荐
white-persist4 天前
Burp Suite模拟器抓包全攻略
前端·网络·安全·web安全·notepad++·原型模式
xiecoding.cn4 天前
Notepad++下载安装图文教程(附安装包)
notepad++·notepad++下载安装·notepad++下载·notepad++安装教程·notepad++安装包·notepad++下载教程
黑客思维者7 天前
Notepad++中高危DLL劫持漏洞深度剖析
notepad++·漏洞·dll劫持
Nan_Shu_6148 天前
学习:uniapp全栈微信小程序vue3后台-额外/精彩报错篇
前端·学习·微信小程序·小程序·uni-app·notepad++
知识分享小能手11 天前
微信小程序入门学习教程,从入门到精通,微信小程序页面制作(2)
前端·javascript·学习·微信小程序·小程序·前端框架·notepad++
cpych13 天前
删除Notepad++关于弹窗的反动字样
notepad++
知攻善防实验室13 天前
Notepad++ 本地提权漏洞|复现|分析
测试工具·安全·网络安全·notepad++
杏花春雨江南13 天前
微信小程序里 uni.navigateTo 用的多了, 容易报错,
微信小程序·小程序·notepad++
BullSmall15 天前
Windows 11 下 Notepad++ 等应用无法启动问题排查&修复
windows·notepad++
matlab_xiaowang1 个月前
【2025】Notepad++安装教程保姆级一键安装教程(附安装包)
其他·notepad++