【发布时间】:2010-08-30 22:37:07
【问题描述】:
我在尝试使用 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
)
我需要转换目录结构中的所有文件,所以我编写了另一个脚本,这次使用的是 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
【问题讨论】:
标签: encoding powershell iconv utf