-1

我需要使用 iconv 将 cp1252 文件转换为 UTF-8,这对于一个文件来说效果很好,但是当我尝试多个文件时它不起作用。

我试试这个

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

它说

找不到文件 - '*.csv'

4

2 回答 2

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"
)
于 2018-02-10T15:35:52.550 回答
0

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

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

笔记:

  1. 某些版本的 iconv 不支持 -o 选项,但可以将标准输出重定向到文件中。
  2. 用双引号将文件名括起来以避免出现空格问题。
于 2020-01-02T16:31:55.287 回答