mail mail

Преобразование строки, содержащей кириллицу, в URLEncode

Пользовательская функция на VBA, которая преобразовывает Unicode (русский текст) в URLencode

Function RussianStringToURLEncode(ByVal txt As String) As String
    For i = 1 To Len(txt)
        l = Mid(txt, i, 1)
        Select Case AscW(l)
            Case Is > 256: t = "%" & Hex(AscW(l) \ 64 + 192) & "%" & Hex(8 * 16 + AscW(l) Mod 64)
            Case 32: t = "+"
            Case Else: t = l
        End Select
        RussianStringToURLEncode = RussianStringToURLEncode & t
    Next
End Function

И что-то типа обратного преобразования - URLdecode:

Function URLencodeToString(ByVal StringToDecode As String) As String
    StringToDecode = Replace(StringToDecode, "%20", "")
    Dim TempAns As String, CurChr As Long
    CurChr = 1
    Do Until CurChr - 1 >= Len(StringToDecode)
        Select Case Mid(StringToDecode, CurChr, 1)
            Case "+"
                TempAns = TempAns & " "
            Case "%"
                v1 = Val("&H" & Mid(StringToDecode, CurChr + 1, 2))
                v2 = Val("&H" & Mid(StringToDecode, CurChr + 4, 2))
                TempAns = TempAns & ChrW((v1 - 194) * 64 + v2)
                CurChr = CurChr + 5
            Case Else
                TempAns = TempAns & Mid(StringToDecode, CurChr, 1)
        End Select
        CurChr = CurChr + 1
    Loop
    URLencodeToString = TempAns
End Function

Комментарии

Отправить комментарий

Содержание этого поля является приватным и не предназначено к показу.
CAPTCHA
Подтвердите, пожалуйста, что вы - человек:
2 + 0 =
Решите эту простую математическую задачу и введите результат. Например, для 1+3, введите 4.