Mr_N спасибо. Жаль что я уже успел написать код. Но все равно спасибо. На будущее пригодиться
Проблемма оказалась не сложной
\u043D это русская буква "н"
\u - значит уникод 04 - номер кодовой страницы 3D - текстовое написание шестнатеричного кода символа, он больше ASC() кода на 176.
поэтому формула по переводу единичного символа будет выглядеть так
txtTmp=Right("\u043D",2) 'вычленяем "3D"
txtOut=Chr(Val("&H" & txtTmp) + 176) ' получим "н"
а обратная трансляция так
txtIn="н"
txtOut = "\u04" & Hex(Asc(txtIn) - 176)
ньюансы:
символы "Ё" и "ё" кодируются вне этого правила.
\n - кодирует перевод строки
А вот две функции прямая и обратная для перевода целых текстовых блоков из формата Иловских брифингов и обратно
Public Function TransLineFrom(txtIn As String) As String
Dim C As String
Dim i As Integer
Dim V As Integer
Dim txtTmp As String
i = 1
Do Until i > Len(txtIn)
C = Mid(txtIn, i, 1): i = i + 1
If C = "\" Then
C = Mid(txtIn, i, 1): i = i + 1
Select Case C
Case "n"
txtTmp = Chr(13) & Chr(10)
Case "\"
txtTmp = " "
Case "u"
txtTmp = Mid(txtIn, i + 2, 2): i = i + 4
V = Val("&H" & txtTmp) + 176
Select Case V
Case 177
txtTmp = "Ё"
Case 257
txtTmp = "ё"
Case 192 To 255
txtTmp = Chr(Val("&H" & txtTmp) + 176)
Case Else
txtTmp = "!"
End Select
End Select
Else
txtTmp = C
End If
TransLineFrom = TransLineFrom & txtTmp
Loop
End Function
Public Function TransLineTo(txtIn As String) As String
Dim C As String
Dim i As Integer
Dim txtTmp As String
For i = 1 To Len(txtIn)
C = Mid(txtIn, i, 1)
If Asc(C) < 192 Then
Select Case Asc(C)
Case 13
txtTmp = "\n": i = i + 1
Case 168
txtTmp = "\u0401"
Case 184
txtTmp = "\u0451"
Case Else
txtTmp = C
End Select
Else
txtTmp = "\u04" & Hex(Asc(C) - 176)
End If
TransLineTo = TransLineTo & txtTmp
Next i
End Function