Convertendo arquivo de texto para UTF-8 no prompt de comando do Windows

17

Preciso converter um arquivo de texto para o formato UTF-8 via prompt de comando do Windows. Isso precisa ser feito em outra máquina e não tenho direitos para instalar software nessa máquina. Eu preciso de algo como:

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

Existe um utilitário de prompt de comando do Windows que pode fazer isso?

user1107888
fonte

Respostas:

29

Eu preciso converter um arquivo de texto para o formato utf-8 via prompt de comando do Windows

Você pode fazer isso facilmente com o PowerShell:

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

Leitura adicional

DavidPostill
fonte
Além disso, você precisa alternar para o PowerShell para executar o comando e sair dele para voltar ao prompt de comando do Windows.
user1107888
De fato. Ou execute-o diretamente em um shell do PowerShell.
DavidPostill
@ DavidPostill alguma idéia de como podemos converter mais de um arquivo, ou seja, processamento de arquivos em lote com a mesma linha de comando?
precisa saber é o seguinte
1
@ vibs2006 Use um ForEachloop. Consulte ForEach - PowerShell - SS64.com .
DavidPostill
Esse método será convertido em UTF-8 ou UTF-8-BOM comum?
Cale Sweeney
2

Use iconvdo pacote GNUWin32. É muito mais rápido, especialmente se seus arquivos tiverem cerca de 1 Gb ou mais.

"C:\Program Files (x86)\GnuWin32\bin\iconv.exe" -f cp1251 -t utf-8 source.txt > result.txt
Raul Nk
fonte
o que a cp1251bandeira faz?
lacostenycoder
é a codificação de entrada. pt.wikipedia.org/wiki/Windows-1251
nadre 17/05/19
2

Aqui está para cada arquivo * .text de conversão em arquivo * .sql:

foreach ($file in get-ChildItem *.txt) {
    Echo $file.name
    Get-Content $file | Set-Content -Encoding utf8 ("$file.name" +".sql")
 }
nobjta_9x_tq
fonte
depois de executar algum erro de arquivo sql, em algum momento, eu decidi usar linux com o comando iconv =))
nobjta_9x_tq