web-dev-qa-db-fra.com

Powershell: définition de l'encodage pour le pipeline Get-Content

J'ai un fichier enregistré sous UCS-2 Little Endian, je veux changer l'encodage, j'ai donc exécuté le code suivant:

cat tmp.log -encoding UTF8 > new.log

Le fichier résultant est toujours dans UCS-2 Little Endian. Est-ce parce que le pipeline est toujours dans ce format? Existe-t-il un moyen simple de rediriger cela vers un nouveau fichier au format UTF8?

45
jedatu

Comme suggéré ici :

Get-Content tmp.log | Out-File -Encoding UTF8 new.log
54
Lars Truijens

Je le ferais comme ça:

get-content tmp.log -encoding Unicode | set-content new.log -encoding UTF8

Ma compréhension est que l'option -encoding sélectionne l'encdoing que le fichier doit être lu ou écrit.

28
driis

charger le contenu du fichier xml avec encodage.

(Get-Content -Encoding UTF8 $ fileName)

7
user572730

Si vous lisez un fichier XML, voici une méthode encore meilleure qui s'adapte à l'encodage de votre fichier XML:

$xml = New-Object -Typename XML
$xml.load('foo.xml')
1
sba