Bash 使用脚本从ANSI转换为UTF-8

Bash 使用脚本从ANSI转换为UTF-8,bash,shell,csv,unix,utf-8,Bash,Shell,Csv,Unix,Utf 8,我创建了一个脚本(.sh文件),用于将CSV文件从ANSI编码转换为UTF-8。 我使用的命令是: iconv -f "windows-1252" -t "UTF-8" $csvname -o $newcsvname 我是从另一个堆栈溢出帖子上得到的。 但是iconv命令似乎不起作用。 记事本中输入文件内容的快照++ 下面是firstcsv文件的快照 下面第二个csv文件的快照 编辑:我尝试将有问题的输入CSV文件内容减少到几行(类似于第一个文件),现在可以很好地转换。那么文件内容本身有什

我创建了一个脚本(.sh文件),用于将CSV文件从ANSI编码转换为UTF-8。 我使用的命令是:

iconv -f "windows-1252" -t "UTF-8" $csvname -o $newcsvname
我是从另一个堆栈溢出帖子上得到的。 但是
iconv
命令似乎不起作用。 记事本中输入文件内容的快照++

下面是firstcsv文件的快照

下面第二个csv文件的快照


编辑:我尝试将有问题的输入CSV文件内容减少到几行(类似于第一个文件),现在可以很好地转换。那么文件内容本身有什么问题吗?如何检查?

您可以使用python chardet字符编码检测器来确保现有的字符编码格式

iconv-f{character encoding}-t utf-8{FileName}>{Output FileName}


这应该行得通。还要检查文件中是否存在可能导致转换错误的垃圾字符。

您指的是哪个输入文件?什么不起作用?这样的脚本或
iconv
?@Inian我似乎无法理解。因为我在另一个文件上尝试了这个脚本,转换得很好。我不确定,但是输入文件($csvname)是否有问题?您能告诉我们您所说的文件类型(格式)吗?如果你的第二个发现是某种二进制格式,它就不能工作。否则,我们需要足够的信息来重现问题以帮助您。@Fred这两个文件都是.csv文件。我还编辑了我的文章,包括第二篇的截图file@Inian你能告诉我还需要什么信息吗?我会尽力提供。我正在使用Putty运行这个脚本,它将输入文件的编码从ANSI转换为UTF-8。输入文件名存储在$csvname中