对文件夹中的所有文件使用iconv将cp1252转换为utf-8

对文件夹中的所有文件使用iconv将cp1252转换为utf-8,utf-8,cmd,iconv,cp1252,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” 如果您使用的是Linux/UNIX,则这不适用。由于您使用了cmd标记,因此假定这是Microsoft Windows。如

我需要用iconv将cp1252文件转换为UTF-8,这对一个文件很有效,但当我尝试多个文件时,它就不起作用了

我试试这个

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

找不到文件-“*.csv”


如果您使用的是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"
)

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

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

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

  • 哪个程序产生这个输出,find还是iconv。这是什么操作系统?这与我在Win7上获得的“find”语法完全不同。“cmd”标记表示这是Windows命令提示符。对于LinuxOne,标记为“bash”。Windows10,我在@Malal找到了它。参考的问题是针对linux而不是windows的BashShell命令解决方案。您是否安装了适用于Windows的Iconv?此应用程序未预装在Windows 10上。您使用的唯一有效的命令行是什么?如何验证您使用的命令行是否真的有效?从Windows-1252转换为UTF-8的文本文件是否包含代码点值大于127十进制的非ASCII字符?打开命令提示窗口,运行
    获取/?
    ,然后阅读输出帮助。对于(*.csv)中的%I,您需要在Windows上执行类似于
    的操作,如执行iconv.exe-f cp1252-t utf-8“%I”-o”路径,以从命令提示符窗口中执行输出文件夹\%~nxI“
    ,当前目录是包含要从Windows-1252转换为utf-8的
    *.csv
    文件的目录。输出文件夹必须已经存在。如有必要,使用命令MD在之前创建它。在命令提示符窗口中运行
    MD/?
    ,查看此命令的帮助。同时运行
    cd/?
    ,您很可能还需要使用它一次。