4eloBek
@4eloBek
ученик

Как через cmd создать /не/пустой текстовый файл с кодировкой utf-8 (без подключения внешних утилит)?

Пробовал так:
chcp 1251
cmd /d /u /c type d:\1251.txt > .tmp
chcp 65001
type .tmp > d:\utf8_out.txt
del .tmp

Ничего не выходит. Просто создается .tmp (Юникод)..(
  • Вопрос задан
  • 4863 просмотра
Пригласить эксперта
Ответы на вопрос 4
@MiiNiPaa
У пустого текстового файла кодировки быть не может в принципе.
txt вообще не хранит информацию о кодировке. Блокнот её подбирает анализом файла обычно.

Юникодные кодировки могут писать маркер BOM в начале файла, но это уже не будет пустой файл.
Ответ написан
Комментировать
Jump
@Jump
Системный администратор со стажем.
Как через cmd создать /не/пустой текстовый файл с кодировкой utf-8
Никак. Это невозможно.

Вы похоже не понимаете как происходит запись в файл.
Текстовый файл это обычный файл, и туда можно записать только единицы и нули. Компьютер работает только с ними. Никаких символов он не знает и не понимает.
Когда вы записываете символ в текстовый файл какой то программой она ищет в кодовой таблице с которой работает соответствующий код - последовательность единиц и нулей и записывает ее в файл.
И все.
Когда вы открываете этот файл - программа которая читает считывает последовательность единиц и нулей и ищет ей соответствие в кодовой таблице с которой она работает в данный момент.
Ответ написан
Комментировать
Spetros
@Spetros
IT-шник
Как через cmd создать пустой текстовый файл с кодировкой utf-8 (без подключения внешних утилит)?

Пустой текстовый файл по определению не имеет кодировки.
Ответ написан
Neuroware
@Neuroware
Программист в свободное от работы время
Как то так, d:\newfile.txt заменить на путь к файлу:
@echo -----BEGIN CERTIFICATE----- > %TEMP%\tmp64.txt
@echo 77u/YXNk >>%TEMP%\tmp64.txt
@echo -----END CERTIFICATE----- >>%TEMP%\tmp64.txt
certutil -decode %TEMP%\tmp64.txt %TEMP%\tmp.txt
copy %TEMP%\tmp.txt d:\newfile.txt
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы