MyTetra Share
Делитесь знаниями!
Замена кодов символов Unicode на сами символы
Время создания: 16.03.2019 23:43
Текстовые метки: Unicode,vba,кодировки
Раздел: !Закладки - VBA - Кодировки
Запись: xintrea/mytetra_db_adgaver_new/master/base/1514985559bed659rhij/text.html на raw.githubusercontent.com

Замена кодов символов Unicode на сами символы

Функция позволяет произвести замену в текстовой строке кодов символов Unicode на их значения

 

В функции используются регулярные выражения (RegExp)

Пример использования функции ReplaceUnicodeChars:

Sub ЗаменаКодовСимволовВСтроке()
    ' исходная текстовая строка, содержащая коды символов Unicode
    txt$ = "Санаторий\u2013профилакторий \u201dЛесная сказка\u201d приглашает Вас!"
 
    res$ = ReplaceUnicodeChars(txt)    ' заменяем коды на симолы

    Debug.Print res$    ' выводит: Санаторий–профилакторий ”Лесная сказка” приглашает Вас!
End Sub

 

Function ReplaceUnicodeChars(ByVal txt$) As String
    ' ищет в тексте txt$ коды символов Unicode (типа \u2013, \u201d)
    ' и заменяет коды этих символов на сами символы
    On Error Resume Next: Err.Clear
    Static REGEXP As Object
    If REGEXP Is Nothing Then
        Set REGEXP = CreateObject("VBScript.RegExp")
        REGEXP.Global = True
        REGEXP.Pattern = "\\u[0-9a-f]{4}"
    End If
    If REGEXP.test(txt) Then    ' если в тексте присутствуют коды символов
        Set objMatches = REGEXP.Execute(txt)
        For i = 0 To objMatches.Count - 1
            code$ = objMatches.Item(i).Value    ' очередной найденный код (например, \u201d)
            charcode& = Val(Replace(code$, "\u", "&H"))    ' получаем код символа
            If charcode& Then txt = Replace(txt, code$, ChrW(charcode&))    ' выполняем замену кода на символ
        Next
    End If
    ReplaceUnicodeChars = txt
End Function
  • 9892 просмотра
Так же в этом разделе:
 
MyTetra Share v.0.59
Яндекс индекс цитирования