Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Скриптовые языки администрирования Windows (http://forum.oszone.net/forumdisplay.php?f=102)
-   -   [решено] Проблема с chcp 65001 (utf-8) в батнике (http://forum.oszone.net/showthread.php?t=152482)

volk1234 06-10-2009 15:04 1235783

Проблема с chcp 65001 (utf-8) в батнике
 
Собственно сабж.

Если надо из батника создать текстовый файл в формате Юникод utf-8 - выполнение батника под ХР прекражается на команде

chcp 65001

можно ли это обойти ?

Надо для создания коментария к 7zip sfx архиву....

gora 06-10-2009 15:42 1235823

Из справки по этой команде:
Код:

Поддерживаемые кодовые таблицы с соответствующими странами/регионами или языками приведены в следующей таблице.
Кодовая страница Страна/регион или язык
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 1235848

На самом деле еще подходят некоторые кодовые страницы отсюда :
http://msdn.microsoft.com/en-us/libr...56(VS.85).aspx

Но в бат файле не работают...
Спасибо за информацию.

amel27 06-10-2009 17:06 1235927

самое забавное, что работает, =) ...хотя в латинице всё одно:
Код:

@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



Время: 14:56.

Время: 14:56.
© OSzone.net 2001-