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およびLibIconv1.9.2を使用しています