разбирать utf код в vbscript - PullRequest
1 голос
/ 15 февраля 2010

Есть ли способ разобрать UTF-коды в VBScript? То, что я хотел бы сделать, это заменить все коды типа "\ u00f1" в строке на соответствующий символ.

1 Ответ

1 голос
/ 15 февраля 2010

Функция Unescape делает это *, только требуется, чтобы символы Юникода были закодированы в формате <strong>%u***xxxx*. Итак, сначала вам нужно заменить коды </strong>\u***xxxx* их эквивалентами **%u***xxxx*. Вот пример:

str = "\u0044\u006F \u0063\u0061\u0074\u0073 \u0065\u0061\u0074 \u0062\u0061\u0074\u0073\u003f"

Set re = New RegExp
re.Pattern = "\\(u[a-f\d]{4})"
re.IgnoreCase = True
re.Global = True

str2 = Unescape(re.Replace(str, "%$1"))
MsgBox str2

* Обратите внимание, что Unescape также заменяет коды <strong>%***xx* в строке соответствующими символами ASCII. Итак, если </strong>%***xx* является допустимой подстрокой в ​​вашей строке, вам придется написать собственную функцию замены. Такая функция может делать следующее:

  • поиск вхождений **\u***xxxx* -подобных подстрок во входной строке,
  • извлекает код символа из каждого совпадения и преобразует его из шестнадцатеричной в десятичную форму,
  • вызов ChrW для преобразования десятичного кода в соответствующий символ Unicode,
  • заменять каждое совпадение **\u***xxxx* на символ ответа.
...