批处理配合iconv转码工具 ,解决Source Insight 中文乱码问题.
Source Insight不支持uft-8编码的文本, 需要转为ANSI
动动手 给 Source Insight 加个转码功能
Source Insight 详细的添加功能的方法,请搜索我的其他"Source Insight"相关文章
添加命令 随便起一个名字
运行命令填写: "D:\IDE\iconv\u2g.bat" %f
路径改一下
最后修改批处理中iconv程序的路径即可
- @echo off
- title utf8转gb2312_基于Iconv的编码转换工具v1.1 by嘎子 2015-09-30更新
- cd /d "%~dp1"
- set filename=%~nx1
- set pats=%~dp1
- ::首次使用,请修改下面的IconvPath的路径!!!!!!!!!!!!!
- set IconvPath="D:\IDE\iconv\iconv.exe"
- if "%filename:~-2%"==".c" goto :single
- if "%filename:~-4%"==".xml" goto :single
- if "%filename:~-2%"==".h" goto :single
- if "%filename:~-4%"==".cpp" goto :single
- if "%filename:~-5%"==".java" goto :single
- if "%filename:~-3%"==".cs" goto :single
- if "%filename:~-4%"==".txt" goto :single
- cls
- color 0a
- ECHO %filename%
- ECHO 不支持这种文件类型,想要支持它请手动修改相关代码
- pause
- exit
- :single
- echo.
- if not exist "%pats%/backup" mkdir "%pats%/backup"
- ECHO 转换的文件:%filename% >> backup/log.txt
- if not exist "%pats%/backup/%filename%" (
- copy /y "%filename%" "backup/%filename%" & echo 执行备份...
- ) else (
- echo "%filename%" 文件已备份过,未执行备份.
- )
- echo.
- echo 正在检查文本编码,防止重复转换时,出现中文丢失...
- echo.
- %IconvPath% -f utf-8 "%filename%" >nul
- if errorlevel 1 goto err
- echo.
- echo 正在执行转换...
- %IconvPath% -c -f utf-8 -t gb2312 "%filename%" > "tmp" & move "tmp" "%filename%"
- ping /n 3 127.1>nul
- exit
- :err
- echo.
- echo 文本不是utf-8编码, 未执行转换到gb2312.
- echo.
- pause
- exit
更新日志:
2015-09-30
转换前先执行检查文本编码,防止重复转换时,出现中文丢失...