Что-то вроде:
echo \ufeff > output.csv
type input.csv >> output.csv
Где \ufeff - это спецификация UTF-8, а input.csv - это текстовый файл UTF-8.
Как указать символ UTF-8 в cmd?
Спасибо @ott за советы. Вот как это сделать:
Используйте Notepad++ с плагином TextFX
Создайте пакетный файл addbom.bat в Notepad++, затем Главное меню> Кодировка> Кодировать в UTF-8 без спецификации
Введите следующее:
@echo off
set "BOM=EF BB BF"
<nul set /p = %BOM%> output.csv
type %1 >> output.csv
Выберите EF BB BF затем Главное меню> TextFX> Преобразование TextFX> Преобразование шестнадцатеричного текста в текстовое. Это изменяет текст на:
@echo off
set "BOM="
<nul set /p = %BOM%> output.csv
type %1 >> output.csv
Сохраните файл, затем в командной строке запустите addbom bad.csv . Ваша спецификация csv будет в output.csv
<nul set /p= - это то же самое, что и echo но не выводит новую строку