当前位置: 首页 > news >正文

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++的具体的安装路径。

然后键入如下类似代码:

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 filesnotepad.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
 

http://www.lryc.cn/news/269616.html

相关文章:

  • Linux驱动开发学习笔记6《蜂鸣器实验》
  • 鸿蒙(HarmonyOS 3.1) DevEco Studio 3.1开发环境汉化
  • 毫米波雷达:从 3D 走向 4D
  • CENTOS docker拉取私服镜像
  • 【前端面经】即时设计
  • 前端三件套html/css/js的基本认识以及示例程序
  • 云计算:OpenStack 配置云主机实例的存储挂载并实现外网互通
  • python/selenium/jenkins整合
  • 华为路由器ACL操作SSH接口
  • Flutter 三点三:Dart Stream
  • centos 防火墙 设置 LTS
  • SAP缓存 表缓存( Table Buffering)
  • Mybatis插件入门
  • DOA估计算法——迭代自适应算法(IAA)
  • Python If语句以及代码块的基本介绍
  • [嵌入式专栏](FOC - SVPWM扇区计算Part1)
  • 亚马逊美国站ASTM F2613儿童折叠椅和凳子强制性安全标准
  • 【机组期末速成】指令系统|机器指令概述|操作数类型与操作类型|寻址方式|指令格式
  • java美容管理系统Myeclipse开发mysql数据库web结构java编程计算机网页项目
  • Redis哨兵
  • 面试算法78:合并排序链表
  • 鸿鹄电子招投标系统:基于Spring Boot、Mybatis、Redis和Layui的企业电子招采平台源码与立项流程
  • node.js对应npm安装和使用
  • (self-supervised learning)Event Camera Data Pre-training
  • 关于个人Git学习记录及相关
  • 【eclipse】eclipse开发springboot项目使用入门
  • Android 13 默认关闭 快速打开相机
  • pytest pytest-html优化样式
  • Visual Studio 配置DLL
  • C/C++转WebAssembly及微信小程序调用