在 Linux 系统中,有多种工具可以用于文件编码转换。以下是几种常用的方法和工具:
iconv
命令iconv
是 Linux 中最常用的编码转换工具。
iconv -f 原编码 -t 目标编码 输入文件 -o 输出文件
# 将 GBK 编码文件转换为 UTF-8
iconv -f GBK -t UTF-8 input.txt -o output.txt
# 查看系统支持的编码列表
iconv -l
recode
命令recode
是另一个强大的编码转换工具,可以处理更复杂的转换。
sudo apt-get install recode # Debian/Ubuntu
sudo yum install recode # CentOS/RHEL
# 将 ISO-8859-1 转换为 UTF-8
recode ISO-8859-1..UTF8 file.txt
# 将 DOS 格式(CRLF)转换为 UNIX 格式(LF)
recode dos..unix file.txt
enca
检测和转换编码enca
可以自动检测文件编码并进行转换。
sudo apt-get install enca # Debian/Ubuntu
sudo yum install enca # CentOS/RHEL
# 检测文件编码
enca -L zh_CN file.txt
# 转换文件到 UTF-8
enca -L zh_CN -x UTF-8 file.txt
Vim 也可以用来转换文件编码:
vim file.txt
# 在 Vim 中执行:
:set fileencoding=utf-8
:wq
或者直接使用命令行:
vim +"set fileencoding=utf-8 | wq" file.txt
find . -name "*.txt" -exec sh -c 'iconv -f GBK -t UTF-8 "{}" > "{}.utf8"' \;
for file in *.txt; do
iconv -f GBK -t UTF-8 "$file" > "${file%.txt}.utf8.txt"
done
希望这些方法能帮助您顺利完成文件编码转换工作!