Показать полную графическую версию : [проблема] UNI2ANSI.VBS и INTL.INF
Пытаюсь преобразовать INTL.INF (находиться в I386 дистрибутива) из UTF-16LE в ANSI при помощи UNI2ANSI.VBS. Но натолкнулся на следующую проблему:скрипт при работе выдаёт ошибку
Uni2Ansi.vbs(24, 5) Ошибка выполнения Microsoft VBScript: Недопустимый вызов или аргумент процедуры
Выяснил, что эта ошибка возникает из-зи строк в INTL.INF вида (строка №2130)
HKLM,"SOFTWARE\Microsoft\Windows NT\CurrentVersion\FontSubstitutes","標準明朝",,"MS 明朝"
Подскажите, возможно ли преобразовать UNI2ANSI.VBS так, что бы он справлялся с такими файлами?
что эта ошибка возникает из-зи строк в INTL.INF вида (строка №2130) »
если проблема в том чтобы хоть как то отконвертировать то
удалить строку, отконвентировать.
внести строчку в реестр , експортировать из реестра в REG - там уже китайские иероглифы должны быть в виде цифр
потом reg2inf и добавить строчку в уже отконвертированный файл.
есливозможно ли преобразовать UNI2ANSI.VBS так »то не в курсе.
если проблема в том чтобы хоть как то отконвертировать то
удалить строку, отконвентировать.
внести строчку в реестр , експортировать из реестра в REG - там уже китайские иероглифы должны быть в виде цифр
потом reg2inf и добавить строчку в уже отконвертированный файл. »
Приведи, пожалуйста, пример батника, который это всё сделает
ya158, я не правильно понял исходное сообщение, я думал затык в одной 2130цатой строке.
В общем случае проблема решения не имеет. UNI2ANSI.VBS юзается для преобразования нормальных INF, в которых нет ничего кроме кириллицы и латиницы, т.е. Уникод для таких файлов явное излишество.
INTL.INF полценный уникодный файл, уникод там используется во весь рост.
единственная лазейка - уникодные значения используются для записи в реестр, а уникодные реестровые записи можно представить в виде цифр.
Amigos,
Может тогда есть какой-нибудь способ удаления некоторых строк из уникодного файла, не изменяя его уникодность (не преобразовывая его в ANSI)? Мне это надо для решения этой проблемы (http://forum.oszone.net/post-982233.html#post982233). Может быть существует какая-нибудь утилита, работающая из комстроки и позволяющая редактировать уникодные файлы?
единственная лазейка - уникодные значения используются для записи в реестр, а уникодные реестровые записи можно представить в виде цифр. »
А как это сделать из комстроки?
ya158,
Можно использавать gsar.exe в который через параметры -s и -r передавать юникод строку в шестнадцатиричном виде. Например следующая команда установит параметру NewAdministratorName значение root:
gsar.exe -s:x00;:x00N:x00e:x00w:x00A:x00d:x00m:x00i:x00n:x00i:x00s:x00t:x00a:x00t:x00o:x00r:x00N:x00a:x00m:x00 e:x00:x20:x00= -r:x00N:x00e:x00w:x00A:x00d:x00m:x00i:x00n:x00i:x00s:x00t:x00r:x00a:x00t:x00o:x00r:x00N:x00a:x00m:x00 e:x00:x20:x00=:x00:x22:x00r:x00o:x00o:x00t:x00:x22 -o defltwk.inf
Для преобразования в юникод в большинстве случаев достаточно добавить :x00 перед символом.
0rs,
я не программист, поэтому из твоего сообщения ничего не понял. Если можешь напиши поподробнее как при помощи командной строки удалить из юникодного файла строки, причём список строк для удаления находится в другом текстовом файле?
ya158, вот программа Marka Russinovicha.
Может помочь..
Strings v2.40
Working on NT and Win2K means that executables and object files
will many times have embedded UNICODE strings that you cannot
easily see with a standard ASCII strings or grep programs.
So we decided to roll our own.
Strings just scans the file you pass it for UNICODE (or ASCII) strings
of a default length of 3 or more UNICODE (or ASCII) characters.
Note that it works under Windows 95 as well.
http://technet.microsoft.com/en-us/sysinternals/bb897439.aspx
SOLON7,
Спасибо, но я уже нашел решение (http://forum.oszone.net/thread-91526-10.html).
© OSzone.net 2001-2012
vBulletin v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.
Available in ZeroNet 1osznRoVratMCN3bFoFpR2pSV5c9z6sTC