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 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_TOUNIX--Unix
 

  • 7
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
Notepad2 是一个外观类似系统记事本的文本编辑工具,但比记事本有了很大的增强。 特点: --自定义语法高亮, 支持 HTML, XML, CSS, JavaScript, VBScript, ASP, PHP, CSS, Perl/CGI, C/C++, C#, Java, VB, Pascal, Assembler, SQL, Python, NSIS, INI, REG, INF, BAT, DIFF, Ruby 等众多文件 --支持 ANSI、Unicode、UTF-8 等编码互换 --直接查看 NFO 文件 --可以格式化 C/C++/Java 源代码 --可以把语法高亮方案导出为 HTML、UBB 代码 --内置 BAT/C/C++/NSIS 等语法支持 --内置 NSIS 脚本编译功能(支持 Unicode 版 NSIS) --可以使用代码页转换来转换诸如 BIG5 码等 ANSI 编码 --可以设置无限个书签 (9种图标可换) 轻松定位 --空格, 制表符彩色显示, 并可互相转换 --可以对任意的文本块进行操作, ALT 键+鼠标 --对括号 {} [] ()可以高亮配对显示, 方便查看(仅对英文符号有效) --支持正则表达式搜索和替换 (Boost) --可以使用半透明模式 --快速放大、缩小页面, 不用再设定字体大小 --可以指定 ESC 键最小化 Notepad2 到系统托盘或者关闭 Notepad2 操作系统:Windows Me/2k/xp (32)/2003 (32)/vista (32)/2008 (32) v1.1.1.2 在 NotePad2 Mod v1.1.1.0 官方版本(蓝色网际/bluenet)的基础之上做了一些小小的修改,使它更完善一些。 更新(1110->1112): 1、修正 "for %%" 字串(在“批处理文件”语法高亮方案下)可能导致程序出错的 bug; 2、添加状态栏的编码部分双击切换编码格式,右击弹出编码格式选择菜单; 3、添加默认编码格式在常规设置页面中; 4、添加一个 unicode / ansi NSIS 开关在常规设置页面中,支持 Unicode 版的 NSIS; 5、添加清除历史记录的功能(菜单); 6、添加保存“文件/查找/替换”历史记录的开关在编辑器设置页面中; 7、“查找/替换/收集对话框”滚动鼠标滚轮时按钮激活“查找”; 8、按下“Ctrl+F”、“Ctrl+H”时,重新激活查找替换窗口,并切换到相应的标签页; 9、修正添加的打开方式没有增加到“用外部程序打开”下子菜单的 bug; 10、改善“配置外部程序”的功能; 11、修正运行新窗口时弹出文件未找到的错误提示; 12、其它一些细节修改; 13、修正“复制为 UBB 代码”后粘贴时末尾缺少一个“]”符号的 bug; 14、“打开收藏夹”中支持的文件类型添加“快捷方式(lnk)”; 15、保存文件的对话框中增加“所有文件 (*.*)”,可以保存为其它的扩展名; 16、改用 VC 2005 编译,修正部分系统中可能导致系统蓝屏或者重启的BUG; 17、升级版本号为 1112; 18、其它细节修改。 其它说明: 主目录下的是简/繁/英三语言一体的版本,自动根据系统选择语言,子目录下分别对应各语系的版本。 替换系统记事本可用压缩包中的“替换系统记事本.bat”,还原系统记事本可用压缩包中的“还原系统记事本.bat”。 已知问题:Unicode 的符号会无法显示。 致谢: 感谢 fashno、Jeffio、X-Star、老陈 等以及汉化论坛与 NSIS 新手群中很多朋友的测试与 BUG 反馈!
回答: 如果你在使用notepad++更改csv文件编码格式时出现中文乱码的问题,可以尝试以下步骤来解决。首先,确保你已经安装了notepad++插件管理器。然后,搜索并安装Python Script插件。重启notepad++后,新建一个脚本,将以下代码复制到脚本中: ```python import os import sys # 需要转换编码格式文件夹路径 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:\] == '.csv': # 指定需要转换编码格式文件类型 notepad.open(root + "\\" + file) notepad.runMenuCommand("Encoding", "Convert to UTF-8-BOM") notepad.save() notepad.close() ``` 将`dir_to_convert`替换为你需要转换编码格式文件夹路径。然后运行脚本,它将批量将指定文件夹中的csv文件转换为UTF-8-BOM编码格式,以解决中文乱码问题。\[3\] 请注意,这个方法需要使用Python Script插件,并且需要按照指定的格式来编写脚本。这样可以确保在转换编码格式时不会出现乱码问题。 #### 引用[.reference_title] - *1* [CSV文件乱码问题解决](https://blog.csdn.net/qq_36893938/article/details/115303737)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* *3* [批量转换文件编码(By notepad++)](https://blog.csdn.net/uddiqpl/article/details/109593248)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

潇潇独行侠

如果有帮助到您,可以请杯快乐水

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值