Konwertowanie pliku tekstowego na UTF-8 w wierszu polecenia systemu Windows

18

Muszę przekonwertować plik tekstowy do formatu UTF-8 za pomocą wiersza polecenia systemu Windows. Tę czynność należy wykonać na innym komputerze i nie mam uprawnień do instalowania oprogramowania na tym komputerze. Potrzebuję czegoś takiego:

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

Czy istnieje narzędzie wiersza polecenia systemu Windows, które może to zrobić?

użytkownik1107888
źródło

Odpowiedzi:

30

Muszę przekonwertować plik tekstowy do formatu utf-8 za pomocą wiersza polecenia systemu Windows

Możesz to łatwo zrobić za pomocą PowerShell:

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

Dalsza lektura

DavidPostill
źródło
Ponadto należy przełączyć na PowerShell, aby wykonać polecenie, a następnie wyjść z niego, aby wrócić do wiersza polecenia systemu Windows.
user1107888,
W rzeczy samej. Lub uruchom go bezpośrednio w powłoce PowerShell.
DavidPostill
@DavidPostill jakiś pomysł, w jaki sposób możemy przekonwertować więcej niż jeden plik, tj. Przetwarzanie pliku wsadowego za pomocą tego samego wiersza poleceń?
vibs2006
1
@ vibs2006 Użyj ForEachpętli. Zobacz ForEach - PowerShell - SS64.com .
DavidPostill
Czy ta metoda przekształci się w zwykły UTF-8 lub UTF-8-BOM?
Cale Sweeney
2

Użyj iconvz pakietu GNUWin32. Jest to znacznie szybsze, szczególnie jeśli Twoje pliki mają rozmiar około 1 Gb lub więcej.

"C:\Program Files (x86)\GnuWin32\bin\iconv.exe" -f cp1251 -t utf-8 source.txt > result.txt
Raul Nk
źródło
co robi cp1251flaga?
lacostenycoder
to kodowanie wejściowe. en.wikipedia.org/wiki/Windows-1251
nadre
2

Oto dla każdego pliku * .text przekonwertowanego na plik * .sql:

foreach ($file in get-ChildItem *.txt) {
    Echo $file.name
    Get-Content $file | Set-Content -Encoding utf8 ("$file.name" +".sql")
 }
nobjta_9x_tq
źródło
po uruchomieniu jakiegoś pliku sql, czasami błąd, zdecydowałem się na użycie linuxa z poleceniem iconv =))
nobjta_9x_tq