Функция 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*
на символ ответа.