iconv对UTF-8的任何编码
我试图将iconv指向目录,并且无论当前编码如何,所有文件都将转换为UTF-8
我正在使用此脚本,但是您必须指定要使用的编码。如何使其自动检测当前编码?
dir_iconv.sh
#!/bin/bashICONVBIN='/usr/bin/iconv' # path to iconv binary
if [ $# -lt 3 ]
then
echo "$0 dir from_charset to_charset"
exit
fi
for f in $1/*
do
if test -f $f
then
echo -e "\nConverting $f"
/bin/mv $f $f.old
$ICONVBIN -f $2 -t $3 $f.old > $f
else
echo -e "\nSkipping $f - not a regular file";
fi
done
终端线
sudo convert/dir_iconv.sh convert/books CURRENT_ENCODING utf8
回答:
也许您正在寻找enca
:
Enca是一位非常幼稚的字符集分析器。它可以检测字符集和文本文件的编码,还可以使用内置转换器或外部库和工具(例如libiconv,librecode或cstocs)将其转换为其他编码。
目前,它独立于语言,支持白俄罗斯语,保加利亚语,克罗地亚语,捷克语,爱沙尼亚语,匈牙利语,拉脱维亚语,立陶宛语,波兰语,俄语,斯洛伐克语,斯洛文尼亚语,乌克兰语,中文以及一些多字节编码。
请注意,通常,自动检测当前编码是一个困难的过程(相同的字节序列可以是多种编码中的正确文本)。enca
根据您告诉它要检测的语言使用启发式方法(以限制编码的数量)。您可以enconv
用来将文本文件转换为单一编码。
以上是 iconv对UTF-8的任何编码 的全部内容, 来源链接: utcz.com/qa/412965.html