在shell中将ANSI转换为UTF-8

时间:2013-11-28 10:44:14

标签: bash shell csv utf-8 iconv

我正在制作解析器(1 csv到3 csv)脚本,我遇到了问题。 我是法国人,所以用我的语言我有一些信件:é è à ....

客户向我发送了一个csv文件,Linux认为该文件为“unknown-8bit”(我想是ansi)。

在我的脚本中,我正在编写3个新的csv文件。但是ViM将它们创建为ISO latin1,因为它与条目中的内容很接近,但我的é,è,à...已被破坏。我需要UTF-8。

所以我尝试将第一个ANSI csv转换为UTF-8:

iconv -f "windows-1252" -t "UTF-8" import.csv -o import.csv

问题是它破坏了我的CSV。它现在只有一排。但我的特殊角色还可以。有没有办法将ANSI转换为UTF-8并保留我的行?

1 个答案:

答案 0 :(得分:25)

将输出放入另一个文件中。不要覆盖旧的。

iconv -f "windows-1252" -t "UTF-8" import.csv -o new_import.csv
读取和写入同一文件时

iconv失败。