Skip to content

lixingcong/FileEncoder

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

13 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

转换文本编码,并进行正则替换

效果

测试文本 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'

About

a simple demo using libiconv

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published