Показать полную графическую версию : [решено] Проблема с chcp 65001 (utf-8) в батнике
volk1234
06-10-2009, 15:04
Собственно сабж.
Если надо из батника создать текстовый файл в формате Юникод utf-8 - выполнение батника под ХР прекражается на команде
chcp 65001
можно ли это обойти ?
Надо для создания коментария к 7zip sfx архиву....
Из справки по этой команде:Поддерживаемые кодовые таблицы с соответствующими странами/регионами или языками приведены в следующей таблице.
Кодовая страница Страна/регион или язык
437 США
850 Многоязыковый (латиница I)
852 Восточная и центральная Европа (латиница II)
855 Кириллица (русский)
857 Турецкий
860 Португальский
861 Исландский
863 Французский (Канада)
865 Скандинавский
866 Русский
869 Современный греческий
Почему здесь нет 1251, не скажу, но 65001 здесь, как видим, отсутствует.
Обойти проблему с файлом конфигурации можно.
- использовать только латиницу и создавать файл в 1251 кодировке. Для модуля пойдет вместо UTF-8.
- использовать только латиницу в 1251 кодировке и не создавать файл заново, а дописывать заготовку файла созданного заранее в кодировке UTF-8 с сигнатурой. Тогда получится полноценный файл конфигурации в кодировке UTF-8 с сигнатурой.
При наличии кириллицы проблему тоже можно решить, но более изощренными средствами с использованием "склеивания файлов", но это уже под конкретную задачу.
volk1234
06-10-2009, 16:02
На самом деле еще подходят некоторые кодовые страницы отсюда :
http://msdn.microsoft.com/en-us/library/dd317756(VS.85).aspx
Но в бат файле не работают...
Спасибо за информацию.
самое забавное, что работает, =) ...хотя в латинице всё одно:
@Echo On
Set CFG=config.txt
Set LN1=;!@Install@!UTF-8!
Set LN2=;Это для проверки.
Set LN3=RunProgram="StartX.exe /WAIT \"msiexec /i Adobe7.msi /qn\""
Set LN4=;!@InstallEnd@!
CHCP 65001|1>%CFG% Echo %LN1%&CHCP 866
CHCP 65001|>>%CFG% Echo %LN2%&CHCP 866
CHCP 65001|>>%CFG% Echo %LN3%&CHCP 866
CHCP 65001|>>%CFG% Echo %LN4%&CHCP 866
© OSzone.net 2001-2012
vBulletin v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.