转换文本编码,并进行正则替换
测试文本 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'