utf8 convertir convert change powershell character-encoding iconv

powershell - convertir - ubuntu change encoding file



PowerShellscript, mala conversación de codificación de archivos (1)

Cuando redirige la salida a un archivo, Powershell usa Unicode como codificación predeterminada. En lugar de usar el operador de redirección, puede canalizar a Out-File con un -Encoding UTF8 .

E:/bin/iconv/iconv.exe -f cp1251 -t utf-8 $inFileName | Out-File -FilePath $outFileName -Encoding UTF8

El siguiente artículo de TechNet tiene más información (equivalente a Get-Help Out-File -full en Powershell v2).

En caso de que ayude a su escenario en absoluto, vale la pena señalar que también puede usar Powershell para hacer la conversión de codificación.

Get-Content $inFileName -Encoding ASCII | Out-File -FilePath $outFileName -Encoding UTF8

Tengo un script de PowerShell para la conversación de la codificación de caracteres del archivo.

Get-ChildItem -Path D:/test/data -Recurse -Include *.txt | ForEach-Object { $inFileName = $_.DirectoryName + ''/' + $_.name $outFileName = $inFileName + "_utf_8.txt" Write-Host "windows-1251 to utf-8: " $inFileName -> $outFileName E:/bin/iconv/iconv.exe -f cp1251 -t utf-8 $inFileName > $outFileName }

Pero en lugar de utf-8, convierte la codificación de caracteres del archivo en utf-16. Cuando invoco la utilidad iconv desde la línea de comandos, funciona bien.

¿Qué hago mal?