cp1252到utf-8使用iconv对文件夹中的所有文件

时间:2018-02-10 07:54:23

标签: utf-8 cmd iconv cp1252

我需要使用iconv将cp1252文件转换为UTF-8,并且对于一个文件工作正常,但是当我尝试多个文件时,它无效。

我试试这个

find . -type f -name '*.csv' -print -exec iconv -f cp1252 -t utf-8 {inputFolderPath} -o {outputFolderPath}\

它说

  

找不到档案 - '* .csv'

2 个答案:

答案 0 :(得分:1)

如果您使用的是Linux / UNIX,则不适用。由于您使用了cmd标记,因此推测这是Microsoft Windows。如果没有,请删除cmd标记。

这可能不是iconv的正确命令行参数。

SET "outputFolderPath=%TEMP%

FOR /F "usebackq tokens=*" %%f IN (`DIR /A:-D "*.csv"`) DO (
    iconv -f cp1252 -t utf-8 "%%~ff" -o "%outputFolderPath%\%%~nxf"
)

答案 1 :(得分:0)

如果所有文件都在一个文件夹/目录中,则可以使用for循环并将结果文件写入子目录中。 bash的代码:

$ mkdir new
$ for f in *.csv; do iconv -f cp1252 -t utf-8 "$f" > new/"$f"; done

注意:

  1. 某些iconv版本不支持-o选项,但是可以将标准输出重定向到文件中。
  2. 使用双引号将文件名引起来,以免出现空格问题。