首页 > 代码库 > Linux下文件编码格式转换

Linux下文件编码格式转换

        最近把项目放到github上,但是发现代码中注释的中文部分有些是乱码,检查后发现是因为我的Centos装在虚拟机上,而我是在Windows环境下通过UE来写代码的,而UE默认是使用ASCII编码。

        所以希望在Linux上使用命令来批量转换编码格式。

 

        查了资料后发现可以使用iconv命令。

 

        首先使用 file 命令来检测文件的类型

        例如:filetest.cpp

        输出:ISO-8859 Cprogram text

 

        iconv命令的参数说明:

 

        -l    列出所有已知的字符集

        -f    原始文本编码

        -t    输出文本编码

        -o    输出文件名

        -s    关闭警告

 

例子:

        iconv-f GB2312 -t UTF-8 test.cpp > test_utf.cpp

        因为iconv默认输出到标准输出,所以我们需要重定向到一个其他文件。(这里不能重定向到自身,否则会清空文件内容)

 

        如果想要把输出内容直接输出到当前文件,可以这样用:

        iconv-f GB2312 -t UTF-8 -o test.cpp test.cpp

Linux下文件编码格式转换