iconv对UTF-8的任何编码

我试图将iconv指向目录,并且无论当前编码如何,所有文件都将转换为UTF-8

我正在使用此脚本,但是您必须指定要使用的编码。如何使其自动检测当前编码?

dir_iconv.sh

#!/bin/bash

ICONVBIN='/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

回到顶部