网站报价表对比表怎么做,相亲网站,微信公众号的激活方法,益阳营销网站建设背景#xff1a;
在项目中遇到Windows平台VS的MSVC编译不识别Unix下UTF-8编码导致的编译失败问题。需要将Unix下的UTF-8转为UTF-8-BOM格式。网上找了些方式#xff0c;之后又深入探究了下文档转换的可能性#xff0c;共享给大家。#xff08;当然Windows和Unix平台代码格式…背景
在项目中遇到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\\testfor 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