怎样在Linux下转换文件格式为UTF8

2025年10月18日 | 分类: 【技术】

【查看文件编码类型:file 命令】

file -i test.txt

输出:

test.txt: text/pln; charset=utf-8

【工具:enca 命令】

安装:

sudo apt-get install enca

查看文件编码类型:

enca -L zh_CN test.txt

转换命令格式:

enca -L 当前语言 -x 目标编码 文件名

意图:把当前目录下的所有文件都转成utf-8

enca -L zh_CN -x utf-8 *

将当前文件夹的所有php文件全部转成utf-8编码:

enca -L zh_CN -x utf-8 *.php

【工具:iconv 命令】

安装:

sudo apt-get install -y libc-bin

转换文件编码时,我们需要指定原文件编码和新文件编码。

测试:

iconv -f gb2312 -t utf-8 file1.txt > file2.txt

-f 参数 指定原文件的编码类型
-t 参数 指定新文件的编码类型
> 符号 表示将转换后的数据输出到 file2.txt 文件中

执行该命令后,文件的编码类型将被转换为UTF-8,且新文件名为 file2.txt。

转换多个文件编码:

需要转换多个文件的编码,我们可以使用 for 循环 结合 iconv 命令 进行批量转换。

意图:遍历该目录下所有以.txt结尾的文件,并使用iconv命令将其转换为UTF-8编码。转换结果将保存在以“new_”为前缀的文件中。

for file in *.txt; do iconv -f GBK -t UTF-8 “$file” > “new_$file”; done

转换某个目录下多个文件编码:

意图:遍历指定目录下的所有文件,并使用iconv命令将其转换为UTF-8编码。转换结果将保存在以“new_”为前缀的同名文件中。

find /path/to/dir -type f -exec sh -c ‘iconv -f GBK -t UTF-8 “$0” > “new_${0%.txt}.txt”‘ {} \;

参考:https://blog.csdn.net/burner/article/details/49925589
参考:https://www.idc.net/help/122151/