Cela pourrait fonctionner pour vous, mais notez qu'il va saisir chaque fichier dans le dossier en cours:
Get-ChildItem | Foreach-Object { $c = (Get-Content $_); `
Set-Content -Encoding UTF8 $c -Path ($_.name + "u") }
Même chose en utilisant des alias pour brièveté:
gci | %{ $c = (gc $_); sc -Encoding UTF8 $c -Path ($_.name + "u") }
Steven Murawski suggère en utilisant Out-File
à la place. Les différences entre les deux applets de commande sont les suivantes:
Out-File
tente de formater l'entrée qu'il reçoit.
Out-File
Le codage par défaut est basé sur Unicode, alors que Set-Content
utilise la valeur par défaut du système.
Voici un exemple en supposant que le fichier test.txt
n'existe pas dans les deux cas:
PS> [system.string] | Out-File test.txt
PS> Get-Content test.txt
IsPublic IsSerial Name BaseType
-------- -------- ---- --------
True True String System.Object
# test.txt encoding is Unicode-based with BOM
PS> [system.string] | Set-Content test.txt
PS> Get-Content test.txt
System.String
# test.txt encoding is "ANSI" (Windows character set)
En fait, si vous ne avez pas besoin de codage Unicode spécifique, vous pouvez aussi bien faire ce qui suit pour convertir un fichier texte Unicode:
PS> Get-Content sourceASCII.txt > targetUnicode.txt
Out-File
est un « opérateur de redirection avec optiona l paramètres "de sortes.
Dupliquer de http://stackoverflow.com/questions/64860/best-way-to-convert-text-files-between-character-sets et aussi voir http://stackoverflow.com/questions/76482/powershell -setting-encoding-for-get-content-pipeline –