我有一個編碼爲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