Conversion d'un fichier texte en UTF-8 à l'invite de commandes Windows

17

J'ai besoin de convertir un fichier texte au format UTF-8 via l'invite de commande Windows. Cela doit être fait sur une autre machine et je n'ai pas le droit d'installer de logiciel sur cette machine. J'ai besoin de quelque chose comme:

c:\notepad   source-file target-file --encoding option

Existe-t-il un utilitaire d'invite de commandes Windows qui peut le faire?

user1107888
la source

Réponses:

29

J'ai besoin de convertir un fichier texte au format utf-8 via l'invite de commande Windows

Vous pouvez facilement le faire avec PowerShell:

Get-Content .\test.txt | Set-Content -Encoding utf8 test-utf8.txt

Lectures complémentaires

DavidPostill
la source
De plus, vous devez basculer vers PowerShell pour exécuter la commande, puis la quitter pour revenir à l'invite de commandes Windows.
user1107888
En effet. Ou exécutez-le directement dans un shell PowerShell.
DavidPostill
@DavidPostill une idée de la façon dont nous pouvons convertir plusieurs fichiers, c'est-à-dire le traitement de fichiers par lots avec la même ligne de commande?
vibs2006
1
@ vibs2006 Utilisez une ForEachboucle. Voir ForEach - PowerShell - SS64.com .
DavidPostill
Cette méthode se convertira-t-elle en UTF-8 ordinaire ou UTF-8-BOM?
Cale Sweeney
2

Utiliser à iconvpartir du pack GNUWin32. C'est beaucoup plus rapide, surtout si vos fichiers font environ 1 Go ou plus.

"C:\Program Files (x86)\GnuWin32\bin\iconv.exe" -f cp1251 -t utf-8 source.txt > result.txt
Raul Nk
la source
que fait le cp1251drapeau?
lacostenycoder
c'est l'encodage d'entrée. en.wikipedia.org/wiki/Windows-1251
nadre
2

Voici pour chaque fichier converti * .text en fichier * .sql:

foreach ($file in get-ChildItem *.txt) {
    Echo $file.name
    Get-Content $file | Set-Content -Encoding utf8 ("$file.name" +".sql")
 }
nobjta_9x_tq
la source
après avoir exécuté un fichier sql, parfois une erreur, j'ai décidé d'utiliser linux avec la commande iconv =))
nobjta_9x_tq