我在尝试使用PowerShell脚本中的iconv批量将一些文件的编码从ISO-8859-1转换为UTF-8时遇到了问题。
我有一个批处理文件,它可以正常工作:
我有一个批处理文件,它可以正常工作:
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
)
我需要将目录结构中的所有文件转换,因此我编写了另一个脚本,这次使用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
}
使用这种方法,结果是将文件转换为UTF-16编码。我不知道自己做错了什么。
有人能帮我吗?这可能是PowerShell本身的编码问题吗?
我正在使用W7和WXP以及LibIconv 1.9.2。
[Console] :: OutputEncoding = [Text.Encoding] :: UTF8
- 如此讨论在这里http://keithhill.spaces.live.com/blog/cns!5A8D2641E0963A97!7212.entry - Keith Hill