Перетворення текстового файлу в UTF-8 в командному рядку Windows


18

Мені потрібно конвертувати текстовий файл у формат UTF-8 за допомогою командного рядка Windows. Це потрібно зробити на іншій машині, і я не маю прав на встановлення програмного забезпечення на цій машині. Мені потрібно щось на кшталт:

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

Чи є утиліта командного рядка Windows, яка може це зробити?

Відповіді:


30

Мені потрібно конвертувати текстовий файл у формат utf-8 через командний рядок Windows

Ви можете легко зробити це за допомогою PowerShell:

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

Подальше читання


Крім того, вам потрібно переключитися на паттерн влади, щоб виконати команду, а потім вийти з неї, щоб повернутися до командного рядка Windows.
користувач1107888

Справді. Або запустити його безпосередньо в оболонці PowerShell.
DavidPostill

@DavidPostill будь-яка ідея, як ми можемо конвертувати більше одного файлу, тобто пакетну обробку файлів тим самим командним рядком?
vibs2006

1
@ vibs2006 Використовуйте ForEachцикл. Дивіться ForEach - PowerShell - SS64.com .
DavidPostill

Чи перетворить цей метод у звичайний UTF-8 або UTF-8-BOM?
Cale Sweeney

2

Використовуйте iconvз пакету GNUWin32. Це набагато швидше, особливо якщо ваші файли становлять приблизно 1 Гбіт або більше.

"C:\Program Files (x86)\GnuWin32\bin\iconv.exe" -f cp1251 -t utf-8 source.txt > result.txt

що робить cp1251прапор?
лакостенікодер

це кодування на вході. en.wikipedia.org/wiki/Windows-1251
надр

2

Ось для кожного перетворення * .text файл у * .sql файл:

foreach ($file in get-ChildItem *.txt) {
    Echo $file.name
    Get-Content $file | Set-Content -Encoding utf8 ("$file.name" +".sql")
 }

після запуску файлу sql, колись помилка, я вирішив використовувати Linux з командою iconv =))
nobjta_9x_tq
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.