尝试使用powershell脚本中的iconv将某些文件的编码从ISO-8859-1批量转换为UTF-8时出现问题.
我有这个bat文件,工作正常:
for %%f in (*.txt) do (
echo %%f
C:\"Program Files"\GnuWin32\bin\iconv.exe -f iso-8859-1 -t utf-8 %%f > %%f.UTF_8_MSDOS
)
Run Code Online (Sandbox Code Playgroud)
我需要转换目录结构上的所有文件,所以我编写了这个其他脚本,这次使用powershell:
Get-ChildItem -Recurse -Include *.java |
ForEach-Object {
$inFileName = $_.DirectoryName + '\' + $_.name
$outFileName = $inFileName + "_UTF_8"
Write-Host Convirtiendo $inFileName -> $outFileName
C:\"Program Files"\GnuWin32\bin\iconv.exe -f iso-8859-1 -t utf-8 $inFileName > $outFileName
}
Run Code Online (Sandbox Code Playgroud)
使用此结果是将文件转换为UTF-16.我不知道我做错了什么.
任何人都可以帮我这个吗?对于PowerShell本身的编码可能是某种问题吗?
我正在使用W7和WXP以及LibIconv 1.9.2
我正在尝试将一堆文件从ASCII转码为UTF-8.
为此,我尝试使用iconv
:
iconv -f US-ASCII -t UTF-8 infile > outfile
Run Code Online (Sandbox Code Playgroud)
-f ENCODING
输入的编码
-t ENCODING
输出的编码
该文件仍未转换为UTF-8.它是一个.dat文件.
在发布之前,我搜索了Google并找到了以下信息:
ASCII是UTF-8的子集,因此所有ASCII文件都已经过UTF-8编码.ASCII文件中的字节和"将其编码为UTF-8"所产生的字节将完全相同.它们之间没有区别.
上述链接仍无济于事.
即使它是ASCII格式,它也支持UTF-8,因为UTF-8是一个超级集合,另一方要接收我的文件需要文件编码为UTF-8.他只需要文件格式为UTF-8.
请给我任何建议.