Linux-iconv命令、并批处理将所有GBK文件转换为UTF8(18)
iconv命令是用来转换文件的编码方式的,比如它可以将UTF8编码的转换成GB18030的编码,反过来也行
常用选项
- -f font1 :(from)将font1型的字符编码进行转换
- -t font2 :(to)转换成font2型的字符编码
- -l :列出已知的编码字符集合
- -o :file :指定输出文件
实例
iconv show_font.c -f GBK -t utf-8
//由于没有-o选项,所以将转换后的utf-8格式show_font.c打印到控制台
iconv show_font.c -f GBK -t utf-8 -o show_font2.c
//将show_font.c转换为utf-8编码,并输出到show_font2.c文件里
在Windous下,可以直接通过记事本另存为编码,即可实现编码互转
对于多个文件的文件夹,如何批处理
示例如下:
$ find default -type d -exec mkdir -p utf/{} \; $ find default -type f -exec iconv -f GBK -t UTF-8 {} -o utf/{} \;
命令1:通过find -type d(查找目录)命令,将当前default文件夹里的目录递归的找出来,然后通过mkdir命令,将找出来的目录递归地复制到utf/default中
命令2:通过find -type f(查找文件)命令,将当前default文件夹里的文件递归的找出来,然后通过iconv命令,批量的转换为utf-8文件,并复制到utf/default中
参考:https://blog.csdn.net/u012724167/article/details/77248919
如果只想批处理文件夹里的某些特殊文件
比如,我们只想处理myui文件夹里的*.cpp和*.h
示例如下:
cp myui/ utf/myui -rf //将myui 复制到utf/myui find utf/myui -name '*.h' -type f -exec rm -rf {} \; //删除*.h find utf/myui -name '*.cpp' -type f -exec rm -rf {} \; find myui -name '*.h' -type f -exec iconv -f GBK -t UTF-8 {} -o utf/{} \; //转换*.h find myui -name '*.cpp' -type f -exec iconv -f GBK -t UTF-8 {} -o utf/{} \;
人间有真情,人间有真爱。