vpuhoff
@vpuhoff
Программист в свободное от работы время

Как правильно считать текст в VBA?

Использую следующую функцию:
Option Explicit
Function GetData(ByVal api As String, ByVal content As String)
Restart: Dim sUrl As String
sUrl = "http://127.0.0.1/api/" + api
Dim oRequest As Object
Dim sResult As String
Dim sResult2 As String
On Error GoTo Err_DoSomeJob
 
Set oRequest = CreateObject("WinHttp.WinHttpRequest.5.1")
With oRequest
    .Open "GET", sUrl, True
    .SetRequestHeader "Content-Type", "application/x-www-form-urlencoded; charset=windows-1251"
    .Send content
    .WaitForResponse
    sResult = .ResponseText
    Debug.Print sResult
    sResult2 = .Status
    Debug.Print sResult2
End With
 
Exit_DoSomeJob:
    On Error Resume Next
    GetData = sResult
    Set oRequest = Nothing
    If sResult2 <> "200" Then
        GoTo Restart
    End If
    Exit Function
   
Err_DoSomeJob:
    'MsgBox Err.Description, vbExclamation, Err.Number
    Resume Exit_DoSomeJob
End Function

Работает отлично, но текст который она возвращает выглядит некорректно, как будто с пробелами между символов, но по факту между ними ничего нет, вероятно это как то связано с кодировкой, но пробовал отправлять в двух разных и получаю все равно одно и тоже, может кто знает как с таким бороться?

Суть макроса следующая, отправляется запрос на самопальный http сервер, который получает текст и параметры из url и каким либо образом его меняет и отправляет обратно, все хорошо, но вот приходит не совсем то что отправлял.
  • Вопрос задан
  • 714 просмотров
Пригласить эксперта
Ответы на вопрос 1
Видимо текст приходит в кодировке Unicode. Попробуйте переконвертировать текст с помощью StrConv
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы