文件存储格式转换(ASCII&UTF-8)
在用 Source Insight[version 3.50.0080] 看用在 Linux 上的代码时发现对中文注释的支持很不友好,看到网上又说要改注释字体为“新宋体”(/“宋体”)的,但我没弄成。就想着直接把编码为 UTF-8 的文件存为 ASCII,首先想到的是“记事本”中的“另存为”,但当文件太多时显然不行。
搜了好多,发现一个写的还不错的sourceinsight中文显示乱码问题彻底解决办法,
简单明了,不过好似有点问题–会把原本是 ASCII 的文件给弄坏了,将改进了一点(在命令行输入目标文件夹,并不能修复关于 ASCII 的问题 -.-。另外,记事本存为 UTF-8 时其实是 “UTF-8 with BOM”,这也带来了不少问题)的贴在下边:
@echo off
set DIR=%1%
if "%DIR%"=="" (
echo "Should input the dictionary name") else (
for /R %DIR% %%i in (*.h *.c *.cpp *.cs *.mak *.java) do (
echo %%i
native2ascii -encoding UTF-8 %%i %DIR%\temp
native2ascii -reverse %DIR%\temp %%i
)
echo ALL DONE
pause
)
关于 native2ascii 的一些参考资料:
所以,就自己写了个 python 程序来实现所需功能:ASCII 与 UTF-8 互相转换:
注:需要自行安装 chardet 模块,且我的 python 环境是 2.7
使用方式: python transformFormat.py fileOrDirName toUTF_8(True/False) fileExtensions(c,cpp,h,cs,mak)[optional]
比如:python transformFormat.py H:\test True c cpp h
就可以将 H:\test 文件夹下的所有后缀为 .c/.cpp/.h 的文件转为 UTF