395 votes

Utilisation de PowerShell pour écrire un fichier dans UTF-8 sans la nomenclature

Out-File semble forcer la nomenclature lors de l'utilisation d'UTF-8:

 $MyFile = Get-Content $MyPath
$MyFile | Out-File -Encoding "UTF8" $MyPath
 

Comment puis-je écrire un fichier dans UTF-8 sans nomenclature à l'aide de PowerShell?

313voto

M. Dudley Points 8482

L'utilisation de la classe .NET UTF8Encoding et le passage de $False au constructeur semble fonctionner:

 $MyFile = Get-Content $MyPath
$Utf8NoBomEncoding = New-Object System.Text.UTF8Encoding($False)
[System.IO.File]::WriteAllLines($MyPath, $MyFile, $Utf8NoBomEncoding)
 

6voto

jamhan Points 161

Ce script convertira en UTF-8 sans BOM tous les fichiers .txt de DIRECTORY1 et les affichera dans DIRECTORY2

 foreach ($i in ls -name DIRECTORY1\*.txt)
{
    $file_content = Get-Content "DIRECTORY1\$i";
    [System.IO.File]::WriteAllLines("DIRECTORY2\$i", $file_content);
}
 

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X