转换文本编码,并进行正则替换
测试文本 gbk.txt 编码为GB2312
STR("hello"), STR("world") DDD("hello"), FFF("world") 输出结果 utf8.txt 编码为UTF8
MYSTR("hello"), MYSTR("world") DDD("hello"), FFF("world") 要求C++11,GCC4.9以上,MSVC为VS2013以上
| 依赖 | Windows | Linux |
|---|---|---|
| libiconv | libiconv-win-build | ./configure --host=x86_64-linux-gnu --prefix=/path/to/install --disable-shared --enable-static |
将静态库(*.a或者*.lib)放置到lib目录下,include复制到include下。
Linux
mkdir build && cd build cmake .. make Windows
md build && cd build cmake .. # 使用Visual Studio打开sln文件编译 Linux
# 用shell会有美元转义,因此单引号 ./FileEncoder gbk.txt utf8.txt gb2312 utf-8 '(STR)(\(\".*?\"\)):MYSTR$2' Windows
# CMD: 没有美元转义,因此双引号,或者不用双引号 .\FileEncoder.exe gbk.txt utf8.txt gb2312 utf-8 "(STR)(\(\"".*?\""\)):MYSTR$2" # PowerShell: 有美元转义,因此单引号 .\FileEncoder.exe gbk.txt utf8.txt gb2312 utf-8 '(STR)(\(\"".*?\""\)):MYSTR$2' 正则表达式替换不是必要的,可以省略该参数,只进行文件编码转换
./FileEncoder gbk.txt utf8.txt gb2312 utf-8 正则表达式替换可以先后进行多个,以逗号和分号间隔
# 先替换abc为xyz,再替换123为456 ./FileEncoder gbk.txt utf8.txt gb2312 utf-8 'abc:xyz;123:456'