Не знал куда закинуть, т.к. вопрос достаточно общий, решил к C++ т.к. думаю тут больше грамотного народу

.
Проблема следующая :
Cscript WiRunSQL.vbs setup.msi "UPDATE `Control` SET `Control`.`Text`='{\VSI_MS_Sans_Serif13.0_0_0}Отмена' WHERE `Control`.`Text`='{\VSI_MS_Sans_Serif13.0_0_0}Cancel'"
Т.е. данная коммандная строка изменяет поле в БД со значением Cancel на русский — Отмена. Нужна для руссификации БД.
WiRunSQL.vbs — скрипт Visual Basic который собственно выполняет SQL запрос который передается ему как параметр.
Так вот, если данную комманду выполнить из bat(или cmd) файла то кодировка портится и в базу добавляется
кракозябры. Если выполнить из строки Total Commander то все нормально. Видится слово Отмена.
В чем @ порылась ???
07.02.05 22:28: Перенесено модератором из 'C/C++. Прикладные вопросы' — Павел Кузнецов
Здравствуйте, <Аноним>, Вы писали:
А>Проблема следующая :
А>А>Cscript WiRunSQL.vbs setup.msi "UPDATE `Control` SET `Control`.`Text`='{\VSI_MS_Sans_Serif13.0_0_0}Отмена' WHERE `Control`.`Text`='{\VSI_MS_Sans_Serif13.0_0_0}Cancel'"
А>Так вот, если данную комманду выполнить из bat(или cmd) файла то кодировка портится и в базу добавляется кракозябры. Если выполнить из строки Total Commander то все нормально. Видится слово Отмена.
А>В чем @ порылась ???
В кодировке текста.
Судя по всему когда ты запускаешь из Total Commander-а сscript решает что текст в кодировке cp1251, а когда из cmd, то в cp866.
Понятно, что в одном из случаев будут "кракозябры".
Надо или перекодировать текст в cp866, либо попробывать вместо сscript-а wscript.
P.S. Думаю эту ветку лучше в "Средства разработки" перенести.
... << RSDN@Home 1.1.4 beta 4 rev. 309>>
Здравствуйте, Аноним, Вы писали:
А>Не знал куда закинуть, т.к. вопрос достаточно общий, решил к C++ т.к. думаю тут больше грамотного народу
.
А>Проблема следующая :
А>А>Cscript WiRunSQL.vbs setup.msi "UPDATE `Control` SET `Control`.`Text`='{\VSI_MS_Sans_Serif13.0_0_0}Отмена' WHERE `Control`.`Text`='{\VSI_MS_Sans_Serif13.0_0_0}Cancel'"
А>Т.е. данная коммандная строка изменяет поле в БД со значением Cancel на русский — Отмена. Нужна для руссификации БД.
А>WiRunSQL.vbs — скрипт Visual Basic который собственно выполняет SQL запрос который передается ему как параметр.
А>Так вот, если данную комманду выполнить из bat(или cmd) файла то кодировка портится и в базу добавляется
А>кракозябры. Если выполнить из строки Total Commander то все нормально. Видится слово Отмена.
А>В чем @ порылась ???
Как тебе уже объяснили — все дело в кодировках.
В консоли винды используется кодировка CP866.
Решается довольно просто.
Пишешь батник в кодировке cp1251 с содержимым
А>А>Cscript WiRunSQL.vbs setup.msi "UPDATE `Control` SET `Control`.`Text`='{\VSI_MS_Sans_Serif13.0_0_0}Отмена' WHERE `Control`.`Text`='{\VSI_MS_Sans_Serif13.0_0_0}Cancel'"