Как преобразовать пакетный файл, хранящийся в utf-8, во что-то, что работает через другой пакетный файл, и запустить его
У меня есть программа, которую я использую для создания командного файла. Моя проблема в том, что вывод программы - UTF-8, поэтому, как только в моем пакетном файле появляются диакритические метки, такие как é, à, ö, Ä, происходит сбой. Кажется, я не могу найти способ преобразовать мой вывод во что-нибудь кроме UTF-8 в программе, которая создает командный файл.
Так что я думал о создании двух файлов Баха. Фактическое и другое, которое преобразует фактическое из UTF-8 в ANSI (кодовая страница Windows 1252 или, возможно, cp 850), а затем выполняет его после этого. Конечно, я бы добавил chcp xxxx в качестве первой команды фактического командного файла.
Поэтому мой вопрос: есть ли альтернатива iconv в Windows - или как преобразовать текстовый файл UTF-8 в кодовую страницу Windows, используя второй пакетный файл. Есть ли что-нибудь встроенное в Win XP и выше, что я мог бы использовать, или есть бесплатный и распространяемый инструмент, который я мог бы использовать для этого?
Примечание:
chcp 65001
не работает для пакетных файлов.
РЕДАКТИРОВАТЬ 1:
В Windows XP я создал два командных файла для проверки первого ответа.
1.bat, закодированный в UTF-8 без спецификации, содержит:
chcp 1252
cd üöä
2.bat также кодируется в UTF-8 без BOM - но без каких-либо специальных символов содержит:
chcp 1252
type "1.bat" >"ansi_file.bat"
Результирующий файл ansi_file.bat, созданный при выполнении 2.bat, будет по-прежнему кодироваться в формате utf-8, а не в кодировке ANSI.
РЕДАКТИРОВАТЬ 2:
Упомянутый обратный процесс работает.
chcp 1252
echo ü > ansi.txt
cmd /u /c type ansi.txt > unicode.txt
но ни одна из следующих последующих строк
cmd /a /c type unicode.txt > back2ansi.txt
type unicode.txt > back2ansi_v2.txt
возвращает меня в ANSI. Я пробовал это как на Win XP и Win 7. Кто-нибудь может помочь?
НОТА:
Я знаю, как использовать Windows Script Host и VBS. Я бы хотел избежать зависимости от хоста скрипта. Метод VBS подробно описан здесь:http://msdn.microsoft.com/en-us/library/windows/desktop/aa368046%28v=vs.85%29.aspx
РЕДАКТИРОВАТЬ 3:
Созданный текстовый файл, содержащий Unicode ü выше, не является utf-8
Файл Unicode для Windows - HEX:
FC 00 20 00 0D 00 0A 00
UTF-8 без спецификации будет HEX:
C3 BC 20 0D 0A
Решение VBS, связанное с, работает только с формой Unicode, но не работает в форме UTF-8. Мне нужно конвертировать UTF-8 в другую кодовую страницу, так что даже эта, кажется, не работает для меня ...