Jak przekonwertować plik wsadowy przechowywany w utf-8 na coś, co działa za pośrednictwem innego pliku wsadowego i uruchomić go
Mam program, którego używam do tworzenia pliku wsadowego. Mój problem polega na tym, że wyjście programu to UTF-8, więc jak tylko znaki diakrytyczne, takie jak é, à, ö, Ę są w moim pliku wsadowym, kończy się niepowodzeniem. Wygląda na to, że nie mogę znaleźć sposobu na konwersję moich danych wyjściowych na coś innego niż UTF-8 w programie, który tworzy plik wsadowy.
Myślałem o stworzeniu dwóch plików bacha. Rzeczywisty i drugi, który konwertuje rzeczywisty z UTF-8 na ANSI (strona kodowa Windows 1252, a może cp 850), a następnie wykonuje go. Oczywiście chciałbym dodać chcp xxxx jako pierwszą komendę rzeczywistego pliku wsadowego.
Moje pytanie brzmi: czy istnieje alternatywa dla iconv w systemie Windows - lub jak przekonwertować plik tekstowy UTF-8 na stronę kodową systemu Windows przy użyciu drugiego pliku wsadowego. Czy w Win XP i nowszych wersjach jest coś, z czego mógłbym skorzystać? Czy istnieje w tym celu bezpłatne i redystrybucyjne narzędzie?
Uwaga:
chcp 65001
nie działa dla plików wsadowych.
EDYTUJ 1:
na Windows XP stworzyłem dwa pliki wsadowe, aby przetestować pierwszą odpowiedź.
1.bat zakodowany do UTF-8 bez BOM zawiera:
chcp 1252
cd üöä
2.bat również zakodowany w UTF-8 bez BOM - ale bez znaków specjalnych zawiera:
chcp 1252
type "1.bat" >"ansi_file.bat"
Wynikowy plik ansi_file.bat utworzony, gdy wykonywany jest plik 2.bat, nadal będzie kodowany w utf-8, a nie kodowany w ansi.
EDYCJA 2:
Wspomniany proces odwrotny działa.
chcp 1252
echo ü > ansi.txt
cmd /u /c type ansi.txt > unicode.txt
ale żadna z następujących kolejnych linii
cmd /a /c type unicode.txt > back2ansi.txt
type unicode.txt > back2ansi_v2.txt
wraca do ANSI. Próbowałem tego zarówno w Win XP, jak iw Win 7. Czy ktoś może pomóc?
UWAGA:
Wiem, jak używać hosta skryptów Windows i VBS. W zależności od hosta skryptu chciałbym jednak uniknąć. Metoda VBS jest szczegółowo opisana tutaj:http://msdn.microsoft.com/en-us/library/windows/desktop/aa368046%28v=vs.85%29.aspx
EDYCJA 3:
Utworzony plik tekstowy zawierający unicode ü powyżej nie jest utf-8
Plik unicode systemu Windows to HEX:
FC 00 20 00 0D 00 0A 00
UTF-8 bez BOM to HEX:
C3 BC 20 0D 0A
Rozwiązanie VBS połączone tylko z formularzem Unicode, ale nie działa na formularzu UTF-8. Muszę przekonwertować UTF-8 na inną stronę kodową, aby nawet ta zdawała się nie działać dla mnie ...