我有一个编码为ISO8859-15的阿拉伯文件。我怎样才能把它转换成UTF8?
我使用iconv
但它不适用于我。如何将ISO8859-15转换为UTF8?
iconv -f ISO-8859-15 -t UTF-8 Myfile.txt
我想附加文件,但我不知道如何。
我有一个编码为ISO8859-15的阿拉伯文件。我怎样才能把它转换成UTF8?
我使用iconv
但它不适用于我。如何将ISO8859-15转换为UTF8?
iconv -f ISO-8859-15 -t UTF-8 Myfile.txt
我想附加文件,但我不知道如何。
难道你的文件不是ISO-8859-15编码?你应该能够检查与文件命令:
file YourFile.txt
此外,您还可以使用的iconv不提供原始文件的编码:
iconv -t UTF-8 YourFile.txt
文件命令如何能够告诉你哪种编码适合理解文件的内容? –
@ThorstenStaerk我不这么认为。手册页上说:“如果没有给出from-encoding,则默认值是从当前语言环境的字符编码派生的。”所以我相信HighKing关于不提供原始文件编码的评论是错误的。 –
文件实用程序不总是猜测正确的编码。您需要手动判断内容是否可以通过以不同编码打开文件来理解。 – code4j
我发现这个工作对我来说:
iconv -f ISO-8859-14 Agreement.txt -t UTF-8 -o agreement.txt
在执行''文件myfile.txt''时,会给出''ISO-8859''。所以,我已经尝试过与你的(除''-14''外)。它显示“ISO-8859不支持”。最后只是我加了''-14''和''ISO-8859-14''一起工作.. – Spike
我通常见过ISO-8859-1 –
在我的情况下,file
命令告诉错误的编码,所以我试着转换所有可能的编码,并找出正确的。
执行此脚本并检查结果文件。
for i in `iconv -l`
do
echo $i
iconv -f $i -t UTF-8 yourfile | grep "hint to tell converted success or not"
done &>/tmp/converted
您可以使用ISO-8859-9编码:
iconv -f ISO-8859-9 Agreement.txt -t UTF-8 -o agreement.txt
Iconv只是将转换后的文本写入标准输出。您必须使用-o OUTPUTFILE.txt
作为参数或将stdout写入文件。 (在某些版本的iconv iconv -f x -t z filename.txt > OUTPUTFILE.txt
或iconv -f x -t z <filename.txt> OUTPUTFILE.txt
)
Synopsis
iconv -f encoding -t encoding inputfile
Description
The iconv program converts the encoding of characters in inputfile from one coded character set to another.
**The result is written to standard output unless otherwise specified by the --output option.**
--from-code, -f encoding
Convert characters from encoding
--to-code, -t encoding
Convert characters to encoding
--list
List known coded character sets
--output, -o file
Specify output file (instead of stdout)
--verbose
Print progress information.
不'iconv'打印错误信息,或者它转换错误? (顺便说一下,你可能会接受更多你之前收到的答案,答复者会对此表示赞赏。) – thb
不,它不会打印错误。我的意思是它不正确地转换文件。我检查了文件的编码,发现它是ISO-8859-15。 – Hakim
你是如何确定它是ISO-8895-15的? – pizza