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

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Наборы обновлений для Windows XP/2003/Windows 7 (http://forum.oszone.net/forumdisplay.php?f=62)
-   -   [проблема] UNI2ANSI.VBS и INTL.INF (http://forum.oszone.net/showthread.php?t=126170)

ya158 16-12-2008 19:32 982229

[проблема] 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 так, что бы он справлялся с такими файлами?

Amigos 16-12-2008 20:18 982268

Цитата:

Цитата ya158
что эта ошибка возникает из-зи строк в INTL.INF вида (строка №2130) »

если проблема в том чтобы хоть как то отконвертировать то

удалить строку, отконвентировать.
внести строчку в реестр , експортировать из реестра в REG - там уже китайские иероглифы должны быть в виде цифр
потом reg2inf и добавить строчку в уже отконвертированный файл.

если
Цитата:

Цитата ya158
возможно ли преобразовать UNI2ANSI.VBS так »

то не в курсе.

ya158 16-12-2008 20:36 982284

Цитата:

Цитата Amigos
если проблема в том чтобы хоть как то отконвертировать то
удалить строку, отконвентировать.
внести строчку в реестр , експортировать из реестра в REG - там уже китайские иероглифы должны быть в виде цифр
потом reg2inf и добавить строчку в уже отконвертированный файл. »

Приведи, пожалуйста, пример батника, который это всё сделает

Amigos 17-12-2008 07:34 982601

ya158, я не правильно понял исходное сообщение, я думал затык в одной 2130цатой строке.
В общем случае проблема решения не имеет. UNI2ANSI.VBS юзается для преобразования нормальных INF, в которых нет ничего кроме кириллицы и латиницы, т.е. Уникод для таких файлов явное излишество.

INTL.INF полценный уникодный файл, уникод там используется во весь рост.

единственная лазейка - уникодные значения используются для записи в реестр, а уникодные реестровые записи можно представить в виде цифр.

ya158 17-12-2008 07:46 982606

Amigos,
Может тогда есть какой-нибудь способ удаления некоторых строк из уникодного файла, не изменяя его уникодность (не преобразовывая его в ANSI)? Мне это надо для решения этой проблемы. Может быть существует какая-нибудь утилита, работающая из комстроки и позволяющая редактировать уникодные файлы?
Цитата:

Цитата Amigos
единственная лазейка - уникодные значения используются для записи в реестр, а уникодные реестровые записи можно представить в виде цифр. »

А как это сделать из комстроки?

0rs 17-12-2008 11:28 982803

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:x00e:x00:x20:x00= -r:x00N:x00e:x00w:x00A:x00d:x00m:x00i:x00n:x00i:x00s:x00t:x00r:x00a:x00t:x00o:x00r:x00N:x00a:x00m:x00e:x00:x20:x00=:x00:x22:x00r:x00o:x00o:x00t:x00:x22 -o defltwk.inf
Для преобразования в юникод в большинстве случаев достаточно добавить :x00 перед символом.

ya158 17-12-2008 20:01 983295

0rs,
я не программист, поэтому из твоего сообщения ничего не понял. Если можешь напиши поподробнее как при помощи командной строки удалить из юникодного файла строки, причём список строк для удаления находится в другом текстовом файле?

SOLON7 05-02-2009 17:34 1030498

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/s.../bb897439.aspx

ya158 05-02-2009 22:24 1030778

SOLON7,
Спасибо, но я уже нашел решение.


Время: 10:35.

Время: 10:35.
© OSzone.net 2001-