对文件夹中的所有文件使用iconv将cp1252转换为utf-8
我需要用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。如
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
注:
哪个程序产生这个输出,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/?
,您很可能还需要使用它一次。